Имя: Пароль:
1C
1C 7.7
v7: синтаксическая ошибка при delete (dbf)
0 mvk
 
05.07.13
15:45
Доброго дня. База 7.7 dbf. Свертка.
Пытаюсь почистить движение регистра (галка "быстрая обработка движения" не стоит). Отладка запроса возвращает:

delete
from ra813 as reg
   join 1SJourn as journ on reg.iddoc = journ.iddoc
where
    journ.Date <= {d '2012-12-31'}

FAILED! ICommandText::Execute(): Syntax error.

Используется 1С++ 3.2.4.1

Подключение:
   База = СоздатьОбъект("OLEDBData");
   База.ПрисоединитьИБ(КаталогИБ(),"Provider=VFPOLEDB.1;Data Source=" + КаталогИБ() + ";Mode=ReadWrite;Collating Sequence=MACHINE");
   РС = База.СоздатьКоманду();
   РС.УстановитьКаталогВремТаблиц("Z:\");  //Виртуалка в памяти 4Гб

   РС.Выполнить("EXECSCRIPT('SET ANSI OFF')");
   РС.Отладка(1);
1 Jaap Vduul
 
05.07.13
15:52
http://msdn.microsoft.com/en-US/library/6kt4x6zx(v=vs.80).aspx

DELETE [Target]
Specifies a target table, cursor, table or cursor alias, or file for the delete operation. If the FROM specifies more than one table, you must include the Target parameter
2 mvk
 
05.07.13
15:55
Помогло. Спасибо.
3 Ёпрст
 
гуру
05.07.13
16:00
если галка стоит, то соединение с журналом нах не впёрлось
4 ДенисЧ
 
05.07.13
16:00
(3) у него НЕ стоит. О чём явно указано
5 Ёпрст
 
гуру
05.07.13
16:00
а чорт .. у тя галки нема.
6 Ёпрст
 
гуру
05.07.13
16:01
(4) проверял ? O_o
^)
7 ДенисЧ
 
05.07.13
16:01
(6) Галка.
8 Ёпрст
 
гуру
05.07.13
16:03
на вот ... кусок свёртки, всё быстрее, чем у тебя

   мд = СоздатьОбъект("MetaDataWork");
   Для ном = 1 по Метаданные.Регистр() Цикл
       Рег = Метаданные.Регистр(ном);
       Состояние("движуха регистра "+Рег.Идентификатор);
       Сообщить("движуха регистра "+Рег.Идентификатор,"i");
       
       Если Рег.БыстраяОбработкаДвижений =0 Тогда
           стр ="
           |DELETE
           |FROM $Регистр."+Рег.Идентификатор+"
           |WHERE iddoc in (select Жур.iddoc from 1sjourn Жур where
           |
           |dtos(Жур.date)+Жур.time+Жур.iddoc between (dtos(:НачДата~~)+'      '+'         ')  and  (dtos(:КонДата~~)+'ZZZZZZ' + 'ZZZZZZZZZ')
           |)
           |";
       Иначе
           стр ="
           |DELETE
           |FROM $Регистр."+Рег.Идентификатор+"
           |    WHERE
           |        DTOS(date)+time+iddoc+STR(lineno,4)+STR(actno,6) BETWEEN
           |         DTOS(:НачДата~~)+'      '+'         '+'    '+'      '
           |     And DTOS(:КонДата~~)+'ZZZZZZ'+'ZZZZZZZZZ'+'ZZZZ'+'ZZZZZZ'    
           |
           |";
       КонецЕсли;            
       Запрос.УстановитьТекстовыйПараметр("НачДата", '01.01.80');
       Запрос.УстановитьТекстовыйПараметр("КонДата", ВыбДата);
           
           
           
       Если Запрос.ВыполнитьИнструкцию(стр) = 0 Тогда
           Сообщить("движуха регистра "+Рег.Идентификатор,"!!!");
       КонецЕсли;
9 Dolly_EV
 
09.07.13
07:51
(8) Ёпрст, ты может всю свертку запостишь? в качестве учебного пособия?.. или файликом?