Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Delete / 8 сообщений из 8, страница 1 из 1
27.10.2005, 17:04:22
    #33348269
VAbramyak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delete
Привет! Помогите решить проблему!
есть скрипт для удаления записей из таблы 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
27.10.2005, 17:11:49
    #33348292
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delete
Для версии младше VFP9 такой синтаксис вообще недопустим. В команде DELETE-SQL можно указывать только один источник данных. Никаких JOIN
...
Рейтинг: 0 / 0
27.10.2005, 17:13:17
    #33348299
VAbramyak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delete
у меня 9 версия...
...
Рейтинг: 0 / 0
27.10.2005, 17:14:36
    #33348304
VAbramyak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delete
09.00.0000.24.12
...
Рейтинг: 0 / 0
27.10.2005, 17:24:08
    #33348349
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delete
Девятка тоже не полностью соответствует ANSI-92. JOIN в DELETE и в UPDATE не работают.
Вместо JOIN можно использовать ...WHERE st.strit=gf.strit ...
С уважением, Алексей.
...
Рейтинг: 0 / 0
27.10.2005, 18:36:36
    #33348566
VAbramyak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delete
будем знать! признателен!
...
Рейтинг: 0 / 0
27.10.2005, 18:47:49
    #33348588
VAbramyak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delete
есть еще один вопрос, если можно помогите... больше имею дело с 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
28.10.2005, 05:25:17
    #33348965
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delete
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
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Delete / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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