|
v7: 1cpp, dbf, delete + Регистр | ☑ | ||
---|---|---|---|---|
0
CaIIIka
06.09.20
✎
11:02
|
Здравствуйте! Пытаюсь свернуть файловую базу, штатными средствами одно распроведение жуть какое долгое. Решил пойти через прямые запросы с чисткой таблиц.
|select r.IDDoc |from $Регистр."+ИмяРег+" as r |INNER JOIN 1Sjourn as j ON j.IDDoc = r.IDDoc and j.Date BETWEEN :НачДата~~ AND :КонДата~~ РАБОТАЕТ |delete |from $Регистр."+ИмяРег+" as r |INNER JOIN 1Sjourn as j ON j.IDDoc = r.IDDoc and j.Date BETWEEN :НачДата~~ AND :КонДата~~ НЕ РАБОТАЕТ delete r - тоже не работает Как заставить? |
|||
1
CaIIIka
06.09.20
✎
11:04
|
При "delete r" пишет "Command contains unrecognized phrase/keyword"
При "delete" пишет "Syntax error" |
|||
2
CaIIIka
06.09.20
✎
11:05
|
Неужели в dbf join при удалении низя?
|
|||
3
CaIIIka
06.09.20
✎
11:09
|
В отладке:
delete from ra681 as r INNER JOIN 1Sjourn as j ON j.IDDoc = r.IDDoc and j.Date BETWEEN {d '2000-01-01'} AND {d '2018-12-31'} |
|||
4
CaIIIka
06.09.20
✎
11:36
|
Он и без join не работает. Что за хрень? У регистров что, таблицы особенные?
delete ra681 from ra681 _____ Command contains unrecognized phrase/keyword. Че ему надо? |
|||
5
CaIIIka
06.09.20
✎
11:43
|
Работает только
delete from ra681 Как тогда журнал привязать чтоб работало? Мдя, на sql какие только выкрутасы не выписывал, а тут такой примитив задолбал уже.... |
|||
6
Sserj
06.09.20
✎
11:47
|
(4)(5) delete .. from это чисто MSSQL расширение, нет такого в стандартах SQL.
Используй стандартный синтаксис: delete ... where iddoc in (select....) |
|||
7
CaIIIka
06.09.20
✎
11:57
|
delete ra681 where IDDoc in (select IDDoc from 1Sjourn where 1Sjourn.Date BETWEEN {d '2000-01-01'} AND {d '2018-12-31'})
delete ra681 where IDDoc in (select j.IDDoc from 1Sjourn as j where j.1Sjourn.Date BETWEEN {d '2000-01-01'} AND {d '2018-12-31'}) ______ Command contains unrecognized phrase/keyword. |
|||
8
CaIIIka
06.09.20
✎
11:59
|
delete from ra681 where IDDoc in (select j.IDDoc from 1Sjourn as j where j.1Sjourn.Date BETWEEN {d '2000-01-01'} AND {d '2018-12-31'})
____ Function name is missing ) Чет не пойму, куда ему скобку воткнуть. |
|||
9
CaIIIka
06.09.20
✎
12:23
|
За пару часов в "зючках" замылмся глаз уже
Так зарабюотало: delete from ra681 where IDDoc in (select j.IDDoc from 1Sjourn as j where j.Date BETWEEN {d '2000-01-01'} AND {d '2018-12-31'}) (6) Спасибо тебе, добрый человек, за конструкцию с where. Сам как-то оторопел от проблем на таком примитиве, что зациклился на другом. |
|||
10
Ёпрст
06.09.20
✎
15:02
|
||||
11
CaIIIka
06.09.20
✎
15:21
|
(10) Прям уж таки в топку :) Ваш вариант универсален и более продвинутый, но в рамках моей задачи почти такой же. Мой заработал и за час данные за 12 лет из регистров вычистил. Только не понял, для чего +'ZZZZZZZZZ'? У меня и без них отработал правильно.
И да... Спасибо большое! Приму как образец универсального рабочего кода. |
|||
12
Ёпрст
06.09.20
✎
16:03
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |