![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вставка текущей даты в БД [2003]
Vaso © (2010-02-19 17:16:00)Пытаюсь вставить текущую дату в таблицу БД.
(CodeGear Delphi 2009, Windows 2003, MSSQL 2005, поле LSDate[DateTime])
SQLQuery1.Active:= False;
SQLQuery1.SQL.Text:= 'update students set LSDate=:prm where ID='+#39+ID+#39; // строка 2
SQLQuery1.Params.ParseSQL(SQLQuery1.SQL.Text, True);
SQLQuery1.Params.ParamByName('prm').DataType:= ftDate; // строка 4
SQLQuery1.Params.ParamByName('prm').Value:= Now; // строка 5
SQLQuery1.ExecSQL();
Выбрасывается ошибка - DBX Error: UnsupportedFieldType
но если это сделать "через ...", т. е. записать так:
SQLQuery1.SQL.Text:= 'update students set LSDate=2010-02-18 where ID='+#39+ID+#39; // строка 2
то в поле LSDate таблицы появляется запись: 14.06.1905 т. е. всё ОК, хотя дата, конечно, не совсем та ...
Дату текущую записать хочется очень. Спасибо
Vaso (2010-02-19 20:41:00) [1]Медвежонок Пятачок © (19.02.10 18:25) [2]
> 'update students set LSDate=getdate() where ID= :p_id'
> Parameters.ParamValues['p_id'] := MyID;
Ура. Заработало!
Правильно так:
SQLQuery1.SQL.Text:= 'update students set LSDate=getdate() where ID='+#39+ID+#39; // строка 2
Спасибо всем.
Медвежонок Пятачок (2010-02-19 18:25:00) [2]'update students set LSDate=getdate() where ID= :p_id'
Parameters.ParamValues['p_id'] := MyID;
12 (2010-02-19 18:06:00) [3]
> SQLQuery1.Params.ParamByName('prm').Value:= Now; // строка
> 5
неверные типы параметров?
SQLQuery1.Params.ParamByName('prm').Value:= datetimetostr(Now)?