|
|
|
mylto |
|
|||
Новичок Профиль Группа: Участник Сообщений: 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. Мы создали некий очень далекий аналог командной строки. Вот шаблон, по которому работает фильтрация: <имя поля> |параметр (=,>,<,>=,<= и т.д.)| <значение> Вот пример: ФИО = Иванов Иван Петрович В результате в таблице останутся только записи где, поле ФИО имеет значение "Иванов Иван Петрович" без внесения физических изменений в таблицу. |
|||
|
||||
Правила форума "C++: Базы данных" | |
|
Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах. Благодарим за понимание. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Базы данных | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |