![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему не работает TADODataSet.Locate по полю типа DateTime? [D6, MSSQL, Access]
Nikolai_S © (2002-10-18 14:27:00)Точно известно, что в таблице есть записи с какой-то определенной датой, но никогда ничего Locate не находит.
sniknik (2002-10-18 16:52:00) [1]и запрос должен работать и локейт если дату правильно прописать, запрос то на совпадение
SELECT * FROM 1saccsel WHERE DATE=#31/03/2000#
DMod.ADOQuery1.Locate("DATE", "31.07.2000", []);
если только дата записана без времени.
а у тебя MyDate скорее всего с с ним. путем двукратного обращения к гадалке расшифровал таки запись MyDate := ...; :о)))
Max Zyuzin (2002-10-18 15:58:00) [2]Есть вероятность, что мешают как раз эти хвосты... которые достаются от времени...
Попробуйте обозначить поле MyDate : TDate;
А запрос на выборку работает?
Что то вроде:
select * from mytable
where PARAM_DATE := :PD
AdoQuery.ParamByDate("PD").AsDateTime = MyDate;
Nikolai_S (2002-10-18 14:56:00) [3]Привоже пример:
есть таблица TABLE, в ней есть поле PARAM_DATE типа TDateTimeField. В таблице есть много записей со значением в 01 апреля 2002 г. (01.04.2002). Вот код, как я делаю Locate:
var
MyDate: TDateTime;
...
MyDate := ...
AdoQuery.Locate("PARAM_DATE", MyDate, []);
Может там еще какие-нибудь часы,минуты,секунды откуда-нибудь беруться? Хотя вроде только дату (без времени) записываю и в таблицу, и в переменную.
Max Zyuzin (2002-10-18 14:43:00) [4]А как Вы ищете... пример можно?
sniknik (2002-10-18 14:34:00) [5]Скорее всего дату неправильно пишеш или неполно (без тайма).