![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Фильтр в ADODataSet [D6, MSSQL]
Sedunov Vitaly © (2002-09-25 09:49:00)Доброго времени суток! У меня возникла следующая проблема: при наложении фильтра Table.Filter:="nshort like ""ре%сме%""" (с кавычками все в порядке) не выдается ни одной записи, хотя при select * from Table where nshort like "ре%сме%" выдаются записи. В чем может быть проблема при наложении фильтра? Grid рефрешится - все как положено. Если использовать один знак %, то все работает нормально, т.е. "nshort like ""ре%""" выдает столько же записей сколько и select * from Table where nshort like "ре%". Заранее благодарен.
BlackTiger (2002-09-25 20:20:00) [1]Это, видимо, косяк самого компонента Дельфы, а не АДО.
"Table.Filter := "...";" - обрабатывается на клиенте силами самого компонента (TADO...), а "SELECT * FROM..." - отправляется на сервер и обрабатывается там.
Sedunov Vitaly (2002-09-25 12:22:00) [2]ОК! Сейчас напишу универсальную функцию которая будет переформировывать строки фильтра. Я просто думал, что есть способ обойти это при помощи штатных функций Delphi. Раз нет - придется функцию писать или формировать DataSet по запросу.
ЮЮ (2002-09-25 12:11:00) [3]А что, пользователю заподло дописать недостающие буквы между ре и сме? Если же это начальные слова многословного поля, то после ввода преобразовать фильтр к виду (nshort like ре%) and (nshort like сме%)
Sedunov Vitaly (2002-09-25 12:06:00) [4]Да смысл не в том. Пользователь фильтр вводит с клавиатуры. И фильтр вида %слово%слово% или слово%% не работает. Проблема в двойном знаке процента после первого слова!
ЮЮ (2002-09-25 11:55:00) [5]а like %сме% работает?
Тогда можно будет
(nshort like ре%) and (nshort like %сме%)
Sedunov Vitaly (2002-09-25 11:52:00) [6]А что мне даст OnFilterRecord, если мне этот фильтр установить надо? Видимо, универсальный обход - сформировать DataSet по запросу, если Accepted=False в OnFilterRecord...
Johnmen (2002-09-25 11:46:00) [7]Видимо такая функциональность ("ре %сме %") не поддерживается в ADO...
Универсальный обход таких ситуаций - OnFilterRecord
Sedunov Vitaly (2002-09-25 11:31:00) [8]Со * не работает тоже. Помогите, пожалуйста! Поиск по королевству Delphi тоже ничего не дал.