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

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

Передача параметра типа TDaateTime в TADOQuery [D7, Access]


jafar ©   (2004-02-27 23:02:00) 

Добрый день.
Подобный вопрос задавался в форуме, но ответов на него поисковик не выдал. Посему, просьба отнестить к проблеме с пониманием :).
Проблема в следующем:Есть запрос на обновление записи в таблице Access'а, которая содержит поле DateTime. В дизайнере я настроил параметр запроса с типом ffDateTime и передаю ему в качестве значения TDateTime. Если передавать дату, у которой день > 12, то после вызова ExecSQL, дата нормально в БД сохраняется. Если день < 12, то при сохранении в БД месяц и день меняются местами, что недопустимо :)

Вопрос:существует ли способ настроить TADOQuery или TParameter так, чтобы данный глюк не наблюдался?

PS. В принципе, можно попробовать передавать дату как строковый литерал ( и так скорее всего будет работать ), но интересует возможность более красивого решения проблемы...


menart   (2004-02-28 19:30:00) [1]


> EditSubwork.Parameters.ParamByName('@performed').Value :=
> datePicker.Date;

попробуй так:
EditSubwork.Parameters.ParamByName('@performed').asDateTime :=  datePicker.Date;


Sam Stone   (2004-02-28 18:55:00) [2]

Поищи что-то типа ShortDateTimeFormat, LongDateTimeFormat


jafar   (2004-02-28 13:34:00) [3]

Вот кусок кода, который некорректно работает...

if ( SelectSubworks.FieldValues['ID'] <> Null ) then begin
   // редактируем существующую запись
   EditSubwork.Parameters.ParamByName('@ID').Value := SelectSubworks.FieldValues['ID'];
   EditSubwork.Parameters.ParamByName('@performed').Value := datePicker.Date;
   EditSubwork.ExecSQL;
end;

А вот примеры того, что получается при разных датах:
Исходная дата: 25.02.2004 -> Ложится в базу корректно,
Дата 8.02.2004 сохраняется в Access как 2.08.2004
Как можно добиться нормального сохранения любой даты?


Johnmen   (2004-02-28 02:25:00) [4]

Это лукавство сплошное...
Приведи код.


Наверх

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