Форум: "Базы";
Текущий архив: 2002.11.07;
Скачать: [xml.tar.bz2];
ВнизПочему не работает TADODataSet.Locate по полю типа DateTime? Найти похожие ветки
← →
Nikolai_S (2002-10-18 14:27) [0]Точно известно, что в таблице есть записи с какой-то определенной датой, но никогда ничего Locate не находит.
← →
sniknik (2002-10-18 14:34) [1]Скорее всего дату неправильно пишеш или неполно (без тайма).
← →
Max Zyuzin (2002-10-18 14:43) [2]А как Вы ищете... пример можно?
← →
Nikolai_S (2002-10-18 14:56) [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 15:58) [4]Есть вероятность, что мешают как раз эти хвосты... которые достаются от времени...
Попробуйте обозначить поле MyDate : TDate;
А запрос на выборку работает?
Что то вроде:
select * from mytable
where PARAM_DATE := :PD
AdoQuery.ParamByDate("PD").AsDateTime = MyDate;
← →
sniknik (2002-10-18 16:52) [5]и запрос должен работать и локейт если дату правильно прописать, запрос то на совпадение
SELECT * FROM 1saccsel WHERE DATE=#31/03/2000#
DMod.ADOQuery1.Locate("DATE", "31.07.2000", []);
если только дата записана без времени.
а у тебя MyDate скорее всего с с ним. путем двукратного обращения к гадалке расшифровал таки запись MyDate := ...; :о)))
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.11.07;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c