|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Непонятки с данными типа Date
Привет. Простейшая задача: в dbf-файл записывается строка следующим образом:
ADOQuery1.SQL.Add('INSERT INTO main_base (DATE_VR) values ("DateTimePicker1.Date")'); В файле main_base.dbf поле DATE_VR имеет тип Date. Выдается ошибка: Data type mismatch. Пытался использовать различные функции преобразования (FormatDateTime, CAST) - но все равно не работает. Выдаются ошибки Incompatible types: 'String' and 'TDate' или Data type mismatch. Если кто-нибудь сталкивался с подобной задачей - помогите плиз. Заранее огромное спасибо! |
#2
|
||||
|
||||
Конечно будет несоответствие типов. Ты пытаешься присвоить строке дату. Так делать нельзя. Вообще, чтобы не было проблем с типами данных я советую использовать параметры в запросах. Для твоего случая решение будет вот таким:
Код:
... with ADOQuery1 do begin if Active then Close; SQL.Text:='INSERT INTO main_base (date_vr) values (:date_vr)'; Parameters.ParseSQL(SQL.Text,True); Parameters.ParamByName('date_vr').Value:=DateTimePicker1.Date; try ExecSQL; except on E:Exception do ShowMessage(Format('Ошибка "%s", при обновлении таблицы',[E.Message])); end; end; |
#3
|
|||
|
|||
Спасибо большое, все работает! Единственное - не работает строка:
Parameters.ParamByName('date_vr').Value:=DateTimeP icker1.Date; Поэтому сделал так :-) (работает только так) Parameters.ParamByName('date_vr').Value:=strtodate (datetostr(DateTimePicker1.Date)); |