Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Фильтрация в БД 
:(
    Опции темы
mylto
Дата 15.11.2013, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 15.11.2013

Репутация: нет
Всего: нет



Доброго времени суток всем! 
Прошу помощи...ибо я нуль полный в программировании...но что-то слепить сумел...

Задача моя заключается в том,чтобы создать базу данных(фильмотека)...Я в аксессе сделал 3 таблицы,связи в них,всё норм...В билдере всё отображается...корректируется что надо,но есть ещё одна проблема - сделать фильтрацию...

Есть столбцы(фильм,бюджет,режисёр,жанр,год),сделал комбобокс,где перечислил все эти графы,сделал Тедит для ввода параметра поиска...и кнопку

но мне не фильтрует ничего( 
задача заключается в том,чтобы я в комбобоксе выбирал название столбца,по которому искать,а в эдит вводил ключевое слово или цифру(год,бюджет)...так вот как мне это сделать...подскажите пожалуйста

void __fastcall TForm1::Button4Click(TObject *Sender)
{
ADOTable1->Open();
ADOTable1->Locate(ComboBox5->Text,Edit5->Text,TLocateOptions() << loCaseInsensitive);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button5Click(TObject *Sender)
{
Form1->ADOTable1->Filtered=false;
Form1->ADOTable1->Filter= " <= " + QuotedStr(Edit5->Text);
Form1->ADOTable1->Filtered=true
;

вот кусок кода этого

делал по примеру с сайта 

Приведем пример использования метода Locate. Поместите на форму компонент TComboBox, TButton и TEdit, занесите в КомбоБокс названия всех полей вашей таблицы (для этого используется свойство Items). В Edit мы будем вводить значение необходимое для поиска, а из ComboBox выбирать поле, по которому осуществлять поиск.

Теперь дважды щелкните по Button или выберите событие OnClick в инспекторе объектов.

Впишете в него следующий код:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
ADOTable1->Locate(ComboBox1->Text,Edit1->Text,[loCaseInsensitive]);
//здесь по указанному в Combo полю ищем значении из Edit. Все просто
//loCaseInsensitive - это поиск без ориентации на строчные и прописные буквы
}
Видите, для организации простого поиска достаточного всего одной строчки кода.

Настало время добавить в наш проект фильтрацию. Добавить еще один TEdit и TButton на форму. Для понимания принципа этого будет достаточно. И разберите вот этот код:

void __fastcall TForm1::Button2Click(TObject *Sender)
{
ADOTable1->Filtered=false; // Отменяем предыдущую фильтрацию если была
ADOTable1->Filter=Edit2->Text; // Выставляем критерий фильтрации
ADOTable1->Filtered=true; // И снова включает фильтрацию
}
Объясню, что может вводиться в Edit2. Мы создали некий очень далекий аналог командной строки. Вот шаблон, по которому работает фильтрация:

<имя поля> |параметр (=,>,<,>=,<= и т.д.)| <значение>
Вот пример:

ФИО = Иванов Иван Петрович
В результате в таблице останутся только записи где, поле ФИО имеет значение "Иванов Иван Петрович" без внесения физических изменений в таблицу.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Базы данных | Следующая тема »


 




[ Время генерации скрипта: 0.1060 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.