|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.12.2012, 14:46 | #1 |
Форумчанин
Регистрация: 26.01.2009
Сообщений: 125
|
Filter cannot be opened
Delphi, ADOTable, БД Access
На ввод фильтра как Код:
Проблема точно не в формате данных - ошибка другая. На подстановку % вместо * говорит абсолютно то же самое. И вообще когда я впихиваю что либо конкретное (без знака *) поиск проходит нормально, но хотелось бы сделать фильтр а не поиск. Борожу просторы интернетов уже с неделю как и так и не нашёл ответа. Удивлен кстати тем что на этом форуме нету такой темы. Хотелось бы совета, что не так я делаю, заранее всем благодарен. И ещё - уже много раз натыкался на совет использовать OnFilterRecord, но почитав немного так и не понял что с ним делать, как с помощью него фильтровать? Киньте в меня ссылкой где понятно написано. |
26.12.2012, 14:49 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А разве так можно ковычками окружать?
может так: Table.Filter:='ZNom LIKE '+QuotedStr('xxx*')
I'm learning to live...
|
26.12.2012, 15:02 | #3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
К OnFilterRecord DataSet обращается последовательно для каждой записи из своего буфера. Если Accept вернулся True - запись доступна пользователю, иначе её просто не видно. Обращение к OnFilterRecord идет при Filtered=True в момент активизации датасета и после вставки или редактирования записи. В активном состоянии датасета изменив значение Filtered мы или заставляем отработать OnFilterRecord или отказываемся от фильтра. В самом обработчике Accept-у нужно присвоить логическое значение в зависимости от состояния данных текущей записи
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 26.12.2012 в 15:05. |
26.12.2012, 15:22 | #4 |
Форумчанин
Регистрация: 26.01.2009
Сообщений: 125
|
И через двойные одинарные кавычки пробовал и через QuotedStr, сейчас через QuotedStr у меня все "окавычено" Я не уделил этому внимания так как пробовал множеством способов, и когда ошибался с кавычками ошибка обычно выскакивала что "Type mismatch", так тчо вот
upd: Оказывается я просто протупил неделю, он ругается когда я так ищу в цифровых значениях, причём про Type mismatch ни слова зараза не говорит! Сейчас попробовал поискать в строковых - отлично находит все. А как бы мне тогда искать по частичному совпадению в числовых значениях? Может подскажете легкий путь? Последний раз редактировалось BoozZzilla; 26.12.2012 в 15:31. |
26.12.2012, 15:45 | #5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Например так
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
26.12.2012, 15:47 | #6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ну попробуй в фильктре CAST() для преобразования в строку использовать
I'm learning to live...
|
26.12.2012, 16:00 | #7 |
Форумчанин
Регистрация: 26.01.2009
Сообщений: 125
|
|
26.12.2012, 16:58 | #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 |