- •Работа с сервером MySql при помощи терминального клиента mysql.Exe
- •Введение
- •Подсоединение к серверу и отсоединение от него
- •Создание пользователейMySqLи назначение прав доступа
- •Использованиеmysqlв пакетном режиме
- •Выполнение запросов
- •Создание и выбор базы данных
- •Работа с таблицами Типы данных столбцов
- •Создание таблицы
- •Просмотр структуры таблицы
- •Модификация структуры таблицы
- •Переименование таблицы
- •Добавление данных в таблицу
- •Просмотр существующих таблиц
- •Обновление (модификация) данных в таблице
- •Удаление строк в таблице
- •Удаление таблицы
- •Определение ключей в бд Определение первичных ключей
- •Определение внешних ключей
- •Задание на лабораторную работу
- •Содержание отчета
- •Работа с сервером MySql при помощи клиента dbForge Studio for MySql
- •Введение
- •Создание соединения и подключение к серверу бд
- •Создание и редактирование таблиц
- •Определение внешних ключей
- •Просмотр и редактирование данных
- •Построение диаграммы бд
- •Экспорт схемы и данных
- •Экспорт схемы и данных вDbForge Studio for MySql версии 4.5
- •Задание на лабораторную работу
- •Содержание отчета
- •Разработка хранимых процедур и функций на сервереMySql
- •Введение
- •Создание, запуск и удаление простой процедуры
- •Создание, запуск и удаление простой функции
- •Простые и системные переменные
- •Параметры процедур и функций
- •Операторы управления ходом выполнения программы
- •Курсоры
- •Задание на лабораторную работу
- •Содержание отчета
- •Исключения и триггеры
- •Исключения
- •ОператорSignal
- •Триггеры
- •Задание на лабораторную работу
- •Содержание отчета
- •Технологии программного доступа к данным
- •КомпонентыActiveX Data Objects
- •Создание главной формы приложения для работы с бд. Соединение с базой данных
- •Создание простой формы с использованием компонентаDataGrid(форма «Детали»)
- •Использование компонентовDbEdit, иDbLookupComboBox. Программный доступ к свойствам и методам компонентаAdoDataSet(форма «Поставщики»)
- •Реализация поиска и фильтрации в базе. Программный доступ к элементам набора данных (форма «Проекты)
- •Сортировка строк в компонентеDbGrid
- •Создание форм с выбором режима просмотра или редактирования. Работа с датой и временем (форма «Поставки»)
- •Работа с изображениями в бд
- •Имитация выпадающего списка в ячейке dbGrid
- •Вызов хранимой процедуры
- •Создание отчетов
- •Задание на лабораторную работу
- •Издания и публикации
- •Разработкаweb-приложений дляMySqLна языкеPhp
- •Установка и настройкаDenver
- •Соединение с бд и вывод данных
- •Задание на лабораторную работу
Реализация поиска и фильтрации в базе. Программный доступ к элементам набора данных (форма «Проекты)
Отбор данных (поиск, фильтрация) в БД является наиболее распространенной операцией. Такая операция стандартно реализуется посредством SQL-запроса к базе. Однако, реализация такой операции в пользовательском интерфейсе возможна большим количеством разнообразных способов. В данном разделе приведен пример реализации поиска-фильтрации поставщика по наименованию с помощью компонента ComboBox. При этом преимуществом такого подхода является то, что одно и то же поле используется как для ввода подстроки поиска, так и для отображения и редактирования значения.
Создайте новую форму (Form4). Поместите на форму компонентыADODataSet,DataSource,DBGrid. Последний понадобится для отображения множества записей, найденных в результате операции фильтрации. Задайте значение свойстваCaptionкак «Проекты».
Значение свойства CommandTextкомпонентаADODataSet1 необходимо определить какselect * from projects. СвойствоConnectionкомпонентаADODataSet1 определить как Form1->ADOConnection1. При этом в модуль формыUnit4.cppдобавить директиву для включения заголовочного файла главной формы.
Поместите на форму компонент ComboBox, задав пустое значение для свойстваTextи значениеFalseдля свойстваAutoComplete:

Механизм поиска будет заключаться в динамическом формировании набора данных ADODataSet1 и элементов выпадающего спискаComboBoxпосредством формированияSQL-запроса с предикатомLIKE, где в качестве шаблона сравнения используется подстрока, введенная пользователем в полеComboBox1.
В инспекторе объектов найдите событие OnChangeкомпонентаComboBox1. Создайте обработчик события со следующим кодом:
//--------------------------------------------------------------void __fastcall TForm4::ComboBox1Change(TObject *Sender)
{
ADODataSet1->Close();
ADODataSet1->CommandText="select * from Projects where Project like '"+ComboBox1->Text+"%'";
ADODataSet1->Open();
AnsiString S="";
// Сохранение подстроки поиска в S
S=ComboBox1->Text;
ComboBox1->Clear();
// Заполнение выпадающего списка ComboBox1
for(int i = 0; i < ADODataSet1->RecordCount; i++)
{
ComboBox1->Items->Add(ADODataSet1->Fields->Fields[1]->AsString);
ADODataSet1->RecNo++;
}
// Очистка и перезапись подстроки поиска в поле ComboBox1
ComboBox1->Text="";
ComboBox1->Text=S;
// Установка курсора в конец подстроки в поле ComboBox1
ComboBox1->SelStart=S.Length();
ComboBox1->SelLength=0;
}
//--------------------------------------------------------------
В инспекторе объектов найдите событие OnSelectкомпонентаComboBox1 и пустой обработчик события (это необходимо для того, чтобы выбранное из списка значение сохранялось в поле редактирования):
//--------------------------------------------------------------
void __fastcall TForm4::ComboBox1Select(TObject *Sender)
{
//
}
//--------------------------------------------------------------
Свяжите форму с пунктом «Проекты» меню главной формы и проверьте работу механизма поиска и фильтрации:

Сортировка строк в компонентеDbGrid
Для того, чтобы реализовать сортировку строк в компоненте DBGrid(например, в форме «Проекты») по клику на заголовке соответствующего столбца необходимо добавить для событияOnTitleClickобработчик следующего вида:
void __fastcall TForm4::DBGrid1TitleClick(TColumn *Column)
{
if (ADODataSet1->Active)
if ((ADODataSet1->Sort.Pos(Column->FieldName)>0) &&
(ADODataSet1->Sort.Pos("ASC")>0))
ADODataSet1->Sort=Column->FieldName+" DESC";
else ADODataSet1->Sort=Column->FieldName+" ASC";
}
