Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.23;
Скачать: CL | DM;

Вниз

Фильтрация ADOQuery   Найти похожие ветки 

 
remlin   (2007-05-18 19:02) [0]

Здравствуйте.
В программе использую ADOQuery. Необходимо отсортировать данные в возращенном наборе.
Пишу:
ADOQuery.Filter := "Pole = "Арм*"";
ADOQuery.Filtered := true;

но хотя и есть слова например "Арматура" в Gride нечего не тображается. Отображается только при полном совпадении слова???
А FilterOptions вообще не поддерживается.


 
Правильный ВАся   (2007-05-18 19:18) [1]


> Необходимо отсортировать данные в возращенном наборе.Пишу:
> ADOQuery.Filter :=

так тебе сортировать или фильтровать
а может мордовать?


 
Anatoly Podgoretsky ©   (2007-05-18 21:43) [2]

> remlin  (18.05.2007 19:02:00)  [0]

Это вообще не откомпилируется


 
remlin   (2007-05-19 10:30) [3]

Извиняюсь.
Надо Фильтровать.


 
Jan1   (2007-05-19 11:16) [4]

чем не устраивает использовать WHERE?


 
sniknik ©   (2007-05-19 11:24) [5]

вместо * поставь %


 
remlin   (2007-05-19 15:05) [6]

>вместо * поставь %
Один фиг не помогает.

Where возращает не все записи из базы.
Мне нужны все записи.


 
Sashok2007   (2007-05-19 15:16) [7]

Попробуй так "Pole="+QuotedStr("Фильтр")...........ну и [5] соответственно.


 
Anatoly Podgoretsky ©   (2007-05-19 15:23) [8]

> remlin  (19.05.2007 15:05:06)  [6]

Значит надо убрать Where, поскольку он как раз для того, что бы возвращать не все записи.


 
sniknik ©   (2007-05-19 15:28) [9]

> Значит надо убрать Where, поскольку он как раз для того, что бы возвращать не все записи.
ага как всегда, сначала нужны все записи... а зачем? а чтобы было потом отфильтровать и получить нужные... ;о)

> Один фиг не помогает.
тогда вместо Pole = "Арм*" напиши Pole LIKE "Арм%"


 
Anatoly Podgoretsky ©   (2007-05-19 16:03) [10]

> sniknik  (19.05.2007 15:28:09)  [9]

ССЗБ


 
remlin   (2007-05-19 16:43) [11]

Нехочу использовать WHERe потому что фильтрацию привязываю к событию Change компонента Edit, И тогда код будет выглядеть так:
procedure TForm1.FilterEditChange(Sender: TObject);
begin
 if FilterCheckBox.Checked = true then
 begin
   ADOQuery.Close;
   ADOQuery.SQL.Text := "SELECT * From Orders WHERE Address LIKE " + """" + FilterEdit.Text + """";
   ADOQuery.Open;
 end;
end;
, т.е. при большом кол-ве записей и многих пользователей - и клиент и сеть будут тормозить.
Фильтрация  с помощью свойства Filter будет работать только на стороне клиента. - соотв. некаких лишних запрсов к базе.

Пробовал:
ADOQuery.Filter := "Address = " + QuotedStr("г.Мос*");  и
ADOQuery.Filter := "Address = " + QuotedStr("г.Мос%");нифига неработает.,
а так:
ADOQuery.Filter := "Address = " + QuotedStr("г.Москва"); - работает


 
Jan1   (2007-05-19 17:15) [12]


> что фильтрацию привязываю к событию Change компонента Edit,
>  

Зачем? Пользователь должен ввести сначала, потом нажать Ентер и только потом надо слать запрос. Если у Вас курсовая то никакой сети непридумывайте.


> ADOQuery.Close;
>    ADOQuery.SQL.Text := "SELECT * From Orders WHERE Address
> LIKE " + """" + FilterEdit.Text + """";
>    ADOQuery.Open;

есть параметры. читали? TParameters + F1


 
Savek   (2007-05-19 18:00) [13]


ADOQuery.Filter := "Address Like " + QuotedStr("г.Мос%");

так будет работать


 
remlin   (2007-05-19 20:49) [14]

> Savek
Спасибо! Работает!



Страницы: 1 вся ветка

Текущий архив: 2007.09.23;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
15-1188272453
schaps
2007-08-28 07:40
2007.09.23
Не верь глазам своим


3-1179783966
-=Саня=-
2007-05-22 01:46
2007.09.23
Запрос с добавлением нового поля


2-1188290749
Шестаков Антон
2007-08-28 12:45
2007.09.23
программно заполнить combobox


2-1188224368
hahol
2007-08-27 18:19
2007.09.23
простите за глупый вапрос


15-1188253671
Petr V. Abramov
2007-08-28 02:27
2007.09.23
А почему тут нет вопросов по QuntumGrid