![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Свойство Filter [D6, MSSQL]
andrey__ © (2003-09-25 14:13:00)
есть таблица у которой поле pol1 типа TDateTime
вытаскиваю с помощью компонента TADOQuery несколько записей.
Хочу отфильтровать их с помощью свойства Filter
делаю
qrList_UU_P.Filtered:=false;
qrList_UU_P.Filter:= "pol1 = 100";
qrList_UU_P.Filtered:=true;
Пишет несоответствие типов
хотя если вместо "pol1 = 0" поставить "pol1 = Null" все работает ставил так же условиеработает
if qrList_UU_P.FieldValues["Date_F"] =100 then
ShowMessage("равно");
andrey__ (2003-09-25 17:25:00) [1]
ZrenBy
QuotedStr(FormatDateTime("yyyymmdd hh:nn:ss",Curr_DateTime));
да помогло спасибо
Stas (2003-09-25 15:47:00) [2]
to Johnmen © (25.09.03 15:40) [12]
И в BDE тоже самое, только с парадоксом.
Я тоже думал что не должен фильтр протормаживать.
Но у меня сильно тормозила таблица на 3000 записей когда я ее пытался фильтровать фильтром (это заметно при вставке записи и при пролистывании таблицы PageDown и PageUp), а стал фильтровать where все нормально.
Такое впечатление что при использовании фильтра на клиента передаются все данные а потом они отбирабтся.
MDAC у меня 2.8 .
Johnmen (2003-09-25 15:40:00) [3]
>Stas © (25.09.03 15:14)
>при количестве записей более 1000 Filter начинает значительно протормажевать
Не может быть. Или это недоработка в АДО ?
>andrey__
Попробуй, как часто советуют, использовать OnFilterRecord.
andrey__ (2003-09-25 15:32:00) [4]
> А Вы попробуйте :)
пробовал.
Stas (2003-09-25 15:14:00) [5]
А вообще лучше используй Where, при количестве записей более 1000 Filter начинает значительно протормажевать
Adony (2003-09-25 15:06:00) [6]
А Вы попробуйте :)
Adony (2003-09-25 15:06:00) [7]
И еще почитайте help про преобразования...
andrey__ (2003-09-25 15:01:00) [8]
> А почему FloatToStr???? а не DateTimeToStr
потому что тип TDateTime представляет числа вида 37740.381529, а если я напишу DateTimeToStr(Curr_DateTime) получится сравнение вида
37740.381529 = 2003.09.25 16:24:00
Adony (2003-09-25 14:33:00) [9]
А почему FloatToStr???? а не DateTimeToStr
ZrenBy (2003-09-25 14:33:00) [10]
qrList_UU_P.Filter:= "pol1 ="+
QuotedStr(FormatDateTime("yyyymmdd hh:nn:ss",Curr_DateTime));
?
andrey__ (2003-09-25 14:30:00) [11]
> MSSQL не имеет типа TDateTime.
извини DateTime
>100 - сто, в смысле, что 100 ?
100 я написал образно , вообще то я писал и так
qrList_UU_P.Filter:= "pol1 =" + FloatToStr(Curr_DateTime);
где Curr_DateTime типа TDateTime и на такое тоже пишет несоответствие типов.
Adony (2003-09-25 14:26:00) [12]
Зато имеет datetime :)
А если поставить вместо 100 "20030925 16:24:00.000"????
ZrenBy (2003-09-25 14:18:00) [13]
MSSQL не имеет типа TDateTime.
100 - сто, в смысле, что 100 ?
stone (2003-09-25 14:16:00) [14]
> Пишет несоответствие типов
потому что
> поле pol1 типа TDateTime