![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
ninja |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 103 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
Добрый вечер! Столкнулся с такой проблмой: при фильтрации данных в таблице БД, если тип поля не строковый, т.е. числовой, дата и т.д., появляется ошибка:
could not convert variant of type OleStr into type Boolean void filtration(TTable *Table,TEdit *Edit,AnsiString Str) Пробовал задавать фильтр таким образом: Table->Filter = Str+"='"+Edit->Text.ToInt()+"'"; при вводе цифр в поле Edit фильтр работает, но как только стереть все что написал, появляется такая же ошибка. Вызов функции: filtration(mk_oborud,Edit3,"Year_vipusk"); Заранее Спасибо за помощь. Сообщение отредактировано: ninja - 8.12.2010 18:06 |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
А ведь я уже говорил про это
![]() Вот тут: Ошибка при изменении условий поиска Смотри, что происходит: 1) ты получил содержимое Edit-а для фильтрации по этому значению. 2) если содержимое пустое - отключил фильтрацию, если нет - то включил. 3) изменил фильтр Это некорректный алгоритм. Фильтр не должен меняться при включенной фильтрации. Алгоритм должен быть такой: 1) отключить фильтрацию безоговорочно, как только вошел в функцию. 2) если поле не пустое - то сформировать строку фильтра и включить фильтрацию. |
![]() ![]() |
![]() |
Текстовая версия | 16.08.2025 4:37 |