powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Delete
8 сообщений из 8, страница 1 из 1
Delete
    #33348269
VAbramyak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет! Помогите решить проблему!
есть скрипт для удаления записей из таблы gefond

delete FROM gefond gf LEFT JOIN strits st ON st.strit=gf.strit left JOIN gecalc gc ON gc.kfo = gf.kfo;
left JOIN gensov gs ON gs.kfo = gf.kfo AND DATETIME(gs.pegd,gs.peod,1) = CTOD('2005/08/01');
where LEN(ALLTRIM(STR(gf.kfo)))<>5 AND ISNULL(gs.kfo) AND ISNULL(gc.kp1) AND ISNULL(gc.kp2) AND ISNULL(gc.kp3)

но он выдает ошибку syntax error
...
Рейтинг: 0 / 0
Delete
    #33348292
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для версии младше VFP9 такой синтаксис вообще недопустим. В команде DELETE-SQL можно указывать только один источник данных. Никаких JOIN
...
Рейтинг: 0 / 0
Delete
    #33348299
VAbramyak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня 9 версия...
...
Рейтинг: 0 / 0
Delete
    #33348304
VAbramyak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
09.00.0000.24.12
...
Рейтинг: 0 / 0
Delete
    #33348349
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Девятка тоже не полностью соответствует ANSI-92. JOIN в DELETE и в UPDATE не работают.
Вместо JOIN можно использовать ...WHERE st.strit=gf.strit ...
С уважением, Алексей.
...
Рейтинг: 0 / 0
Delete
    #33348566
VAbramyak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
будем знать! признателен!
...
Рейтинг: 0 / 0
Delete
    #33348588
VAbramyak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть еще один вопрос, если можно помогите... больше имею дело с SQL Server, куда перекидываем базы из FoxPro...
У сеня в каталоге есть несколько файлов дбф структуру которых надо дополнить примерно так

ALTER table strits ADD GEO numeric(1)
ALTER table strits ADD IsDeleted numeric(1)
ALTER table strits ADD IsInserted numeric(1)
ALTER table strits ADD IsUpdated numeric(1)
ALTER table strits ADD IsQuestion numeric(1)

ALTER table strits ADD Id int
UPDATE strits SET id = RECNO()

можно написать кукую-нить prg чтобы не подставлять каждый раз другую таблу а изменить все сразу! Спасибо!
...
Рейтинг: 0 / 0
Delete
    #33348965
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi VAbramyak!

1) В синтаксисе с JOIN надо писать DELETE из_какой_таблицы_удаляем FROM ...
2) Даже с одним LEFT JOIN толку почему-то никакого нет :( Может это
ошибка... с Inner JOIN всё как положено.
3) 2 LEFT JOIN - и уже SQL is too complex

> можно написать кукую-нить prg чтобы не подставлять каждый раз другую таблу
> а изменить все сразу!

Можно.
если таблицы в базе - ADBOBJECTS, иначе - ADIR - получим список таблиц.
Затем применяя макро или именованные выражения (они вводятся круглыми
скобками) и цикл по массиву делаем всё что требуется.

ALTER TABLE "&lcVariable_With_Table_Name" ...
ALTER TABLE (m.lcVariable_With_Table_Name) ...

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Delete
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]