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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
ninja
сообщение 8.12.2010 19:35
Сообщение #2


Пионер
**

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

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


Работает smile.gif даже преобразовывать не нужно, если я правильно понял, функция QuotedStr() добавляет ковычки (') к Edit'y. Большое Вам спасибо, еще небольшой вопрос, можно ли как-нибудь проверить то, что вводится в поле Edit? Я имею ввиду, что при преобразовании в число функцией StrToInt() если вводится символы, то появляется ошибка, в Delphi, я делал следующим образом: объявлял массив содержащий цифры и проверял при вводе каждый введенный символ:

if not Key in Mas then Key := #0


В C++ борюсь с проблемой с помощью конструкции:

try
{
k = StrToInt(Edit1->Text);
}
catch(...)
{
}


Существует ли какой-нибудь другой способ?

Сообщение отредактировано: ninja - 8.12.2010 19:38
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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