IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> Проблема при фильтрации данных, C++ Builder
ninja
сообщение 8.12.2010 18:01
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 103
Пол: Мужской
Реальное имя: Александр

Репутация: -  0  +


Добрый вечер! Столкнулся с такой проблмой: при фильтрации данных в таблице БД, если тип поля не строковый, т.е. числовой, дата и т.д., появляется ошибка:

could not convert variant of type OleStr into type Boolean

void filtration(TTable *Table,TEdit *Edit,AnsiString Str)
{
Table->FilterOptions << foCaseInsensitive;
if (Edit->Text == "")
{
Table->Filtered = false;
}
else
{
Table->Filtered = true;
}

Table->Filter = Str+"='"+Edit->Text+"*'";
}


Пробовал задавать фильтр таким образом:

Table->Filter = Str+"='"+Edit->Text.ToInt()+"'";


при вводе цифр в поле Edit фильтр работает, но как только стереть все что написал, появляется такая же ошибка.

Вызов функции:

 filtration(mk_oborud,Edit3,"Year_vipusk");

Заранее Спасибо за помощь.

Сообщение отредактировано: ninja - 8.12.2010 18:06
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 8.12.2010 19:51
Сообщение #2


Гость






Цитата
Я имею ввиду, что при преобразовании в число функцией StrToInt() если вводится символы, то появляется ошибка
Кроме StrToInt есть еще TryStrToInt, которая вернет false, если преобразование невозможно:

	int value;
if(TryStrToInt(Edit2->Text, value))
{
// Все в порядке, можно использовать value
}

 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 24.06.2025 11:49
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"