Форум: "Базы";
Текущий архив: 2007.09.23;
Скачать: [xml.tar.bz2];
ВнизФильтрация 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.042 c