Консультация № 126337
07.03.2008, 13:01
0.00 руб.
0 1 1
Здравствуйте, уважаемые господа эксперты.
Я использую таблицу с именем DATA в базе данных под СУБД MS SQL Server 2000. В ней есть поле типа DateTime с именем DATA_DATE.
Мне нужно удалить из этой таблицы записи, в которых DATA_DATE меньше значения, которое я выбираю в DataTimePicker1.
Пробую работать под dbExpress. Создаю SQLQuery1: TSQLQuery,
делаю свойство SQLQuery1.SQL :
DELETE FROM DATA WHERE DATA_DATE <= :FDATE
в редакторе параметров ввожу параметр типа ftDateTime или ftTimeStamp, все равно.
По нажатию Button1 пытаюсь выполнить код:

FromDate := DateTimePicker1.Date + DateTimePicker1.Time ;
SQLQuery1.Params[0].AsDateTime := FromDate;
SQLQuery1.ExecSQL(false);

(Пробовал ParamsByName - безуспешно)
Выходит ошибка:
dbExpress Error: Invalid Field Type
ПОЧЕМУ???
Спасибо заранее.
OldProger.

Обсуждение

Неизвестный
07.03.2008, 13:34
общий
это ответ
Здравствуйте, OldProger!

>>В ней есть поле типа DateTime с именем DATA_DATE.

Попробуйте отладить сначала SELECT FROM DATA WHERE DATA_DATE <= :FDATE.

>>dbExpress Error: Invalid Field Type

Может, в самом компоненте заведены неправильные субкомпоненты-филды?..

Подцепите DBGrid к этому запросу...
Перед ExecSQL я всегда делаю Prepared := TRUE;
Какой версии Delphi?
C MSSQL2000 много лет работаю через ADO...
Форма ответа