![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 26.01.2009
Сообщений: 125
|
![]()
Delphi, ADOTable, БД Access
На ввод фильтра как Код:
Проблема точно не в формате данных - ошибка другая. На подстановку % вместо * говорит абсолютно то же самое. И вообще когда я впихиваю что либо конкретное (без знака *) поиск проходит нормально, но хотелось бы сделать фильтр а не поиск. Борожу просторы интернетов уже с неделю как и так и не нашёл ответа. Удивлен кстати тем что на этом форуме нету такой темы. Хотелось бы совета, что не так я делаю, заранее всем благодарен. И ещё - уже много раз натыкался на совет использовать OnFilterRecord, но почитав немного так и не понял что с ним делать, как с помощью него фильтровать? Киньте в меня ссылкой где понятно написано. |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
А разве так можно ковычками окружать?
может так: Table.Filter:='ZNom LIKE '+QuotedStr('xxx*')
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
К OnFilterRecord DataSet обращается последовательно для каждой записи из своего буфера. Если Accept вернулся True - запись доступна пользователю, иначе её просто не видно. Обращение к OnFilterRecord идет при Filtered=True в момент активизации датасета и после вставки или редактирования записи. В активном состоянии датасета изменив значение Filtered мы или заставляем отработать OnFilterRecord или отказываемся от фильтра. В самом обработчике Accept-у нужно присвоить логическое значение в зависимости от состояния данных текущей записи
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 26.12.2012 в 15:05. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 26.01.2009
Сообщений: 125
|
![]()
И через двойные одинарные кавычки пробовал и через QuotedStr, сейчас через QuotedStr у меня все "окавычено"
![]() upd: Оказывается я просто протупил неделю, он ругается когда я так ищу в цифровых значениях, причём про Type mismatch ни слова зараза не говорит! Сейчас попробовал поискать в строковых - отлично находит все. А как бы мне тогда искать по частичному совпадению в числовых значениях? Может подскажете легкий путь? Последний раз редактировалось BoozZzilla; 26.12.2012 в 15:31. |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Например так
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Ну попробуй в фильктре CAST() для преобразования в строку использовать
I'm learning to live...
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 26.01.2009
Сообщений: 125
|
![]() |
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Цитата:
Сформировать Filter с помощью CAST программного кода не меньше потребует для вашего случая, чем сформировать новые значения в трех переменных. Кстати даже не знаю - съест ли дельфи CAST в Filter, никогда не пробовал ![]()
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 26.12.2012 в 17:07. |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
BindingSource.Filter VB | 4eburator | Помощь студентам | 2 | 15.03.2012 00:27 |
BindingSource.Filter | doober | Общие вопросы .NET | 2 | 12.10.2010 03:25 |
ADO filter like | Spot | БД в Delphi | 8 | 08.02.2010 16:30 |