Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вставка текущей даты в БД [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)?


Наверх

Титульная страница Поиск, карта сайта Написать письмо