![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
1147 |
![]()
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
Такая ситуация: При вводе в Tedit какого бы то нибыло символа для поиска в базе, неизменно возникает сообщение: "Не удается найти объект в семействе, соответствующий требуемому имени или порядковому номеру". Или:
"Аргументы имеют неверный тип, выходят за пределы допустимого диапазона, или вступают в конфликт друг с другом" Несколько дней на этом уже торможу и никак не пойму в чем здесь дело!!! База: MS Access, соединение: ADO. Для поиска используются 3 tedita. Первый осуществляет поиск по номеру, второй по дате и третий по фамилии. Когда поиск осуществляется по точному значению (=), все в порядке! никаких проблем! но этот поиск мне не подходит, нужно найти фрагмент в строке, соответственно используется like. Код form4.xd.Filter:='[Номера] LIKE ''*' +Form4.Edit1.Text+'*'''; И вот тут начинаются какие то несоответствия типов!!! Очень странно что при изменении параметров поиска возникают ошибки. Совершенно не пойму в чем они заключаются ![]() Сообщение отредактировано: 1147 - 22.06.2009 22:07 |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
А зачем ты апострофами выделяешь LIKE-запрос? Насколько я помню,
form4.xd.Filter:='[Номера] LIKE *' +Form4.Edit1.Text+'*';должно быть достаточно... Добавлено через 1 мин. Цитата при изменении параметров поиска возникают ошибки При изменении КАКИХ параметров и с чего на что? |
1147 |
![]()
Сообщение
#3
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
// Вот пример когда программа работает без ошибок: |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
При таком варианте (втором) программа работает совершенно безошибочно (проверялось только вчера) за исключением одного-единственного случая: когда Edit1.Text пуст, возникает ошибка "Аргументы имеют неверный тип, выходят за пределы допустимого диапазона, или вступают в конфликт друг с другом". Все остальные варианты отрабатывают идеально со строковыми полями...
|
1147 |
![]()
Сообщение
#5
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
дада!!! Вот именно! Когда нашлась нужная запись, из tedita удаляется старая для того чтобы начать новый поиск. и тут ошибка!
А как же тогда быть если нужно повторно произвести поиск? Сообщение отредактировано: 1147 - 22.06.2009 22:50 |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
А ты что, на время обновления TEdit-а не сбрасываешь Filtered в False? Напрасно, очень даже помогает
![]() |
1147 |
![]()
Сообщение
#7
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
Сбрасываю:
procedure TForm4.Edit1Change(Sender: TObject); Если tedit пустое, фильтр должен отключаться Ведь в поиске по "=" таких проблем не возникает! Там используется тот же самый код Сообщение отредактировано: 1147 - 22.06.2009 23:05 |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
А вот так попробуй, может чего и получится:
if Length(Edit1.Text) > 0 then beginКак говорится, найди отличия ![]() Добавлено через 1 мин. Цитата Если tedit пустое, фильтр должен отключаться Должен-то должен, но ты ж его заполняешь, причем заполняешь некорректным запросом с точки зрения ADO. Это уж потом будет решено, показывать или нет результаты фильтрации, а сначала фильтр будет применен... А зачем? Не заполняй его при пустом Edit-е и всего делов... |
1147 |
![]()
Сообщение
#9
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
![]() ![]() Огромное спасибо!!! ![]() |
![]() ![]() |
![]() |
Текстовая версия | 8.07.2025 10:11 |