- •Работа с сервером 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
- •Соединение с бд и вывод данных
- •Задание на лабораторную работу
Создание форм с выбором режима просмотра или редактирования. Работа с датой и временем (форма «Поставки»)
Обычно к пользовательскому интерфейсу предъявляется требование дружественности, которое заключается в следующем:
- предоставление ясной и полной информации;
- интуитивно понятная организация;
- контроль вводимых пользователем данных;
- защита от неправильных действий;
- подсказки и предупреждения.
Для реализации примера дружественной формы создайте форму «Поставки» (Form5). Свяжите ее с соответствующим пунктом системного меню. Поместите на форму компонентыLabel,DBLookupComboBox,Button,ADODataSet,DataSourceкак показано на рисунке:
Установите для свойства Enabledкнопок Выбрать и Сохранить значениеFalse.
Добавьте в модуль формы Unit5.cppдирективу для включения заголовочного файла главной формы.
Для всех компонентов ADODataSetсвойствоConnectionопределите как Form1->ADOConnection1.
Задайте свойства CommandTextдля компонентовADODataSetв соответствии с таблицей:
-
Компонент
Значение CommandText
ADODataSet1
select * from supply
ADODataSet2
select * from parts
ADODataSet3
select * from projects
ADODataSet4
select * from providers
Для всех компонентов DataSourceзадайте свойствоDataSet, связав каждыйDataSourceсо «своим»DataSet.
Задайте свойства для компонентов DBLookupComboBoxиDBEditв соответствии с таблицей:
Компонент |
DataSource |
DataField |
ListSource |
ListField |
KeyField |
ReadOnly |
DBLookupComboBox1 |
DataSource1 |
Part_ID |
DataSource2 |
Part_name |
Part_ID |
True |
DBLookupComboBox2 |
DataSource1 |
Project_ID |
DataSource3 |
Project |
Project_ID |
True |
DBLookupComboBox3 |
DataSource1 |
Provider_ID |
DataSource4 |
Provider |
Provider_ID |
True |
DBEdit1 |
DataSource1 |
Begin_Date |
- |
- |
- |
True |
DBEdit2 |
DataSource1 |
End_Date |
- |
- |
- |
True |
DBEdit3 |
DataSource1 |
Quantity |
- |
- |
- |
True |
DBEdit4 |
DataSource1 |
Price |
- |
- |
- |
True |
Для реализации ввода даты и времени создайте форму «Ввод даты и времени» (Form6). Поместите на форму компонентыDateTimePicker,Label,Button, как показано на рисунке.
Установите для первого компонента DateTimePickerзначение свойстваKindравноеdtkDate, а для второгоdtkTime.
Для передачи в форму «Ввод даты и времени» параметра выбора даты начала или конца поставки необходимо в заголовочном файле главной формы Unit1.hв разделеpublicописать переменную int n.
Для управления компонентами формы «Поставки» создайте в модуле формы следующие обработчики:
void __fastcall TForm5::Button3Click(TObject *Sender)
{
ADODataSet1->Next(); //Переход к следующей записи
}
//--------------------------------------------------------------void __fastcall TForm5::Button4Click(TObject *Sender)
{
ADODataSet1->Prior(); //Переход к предыдущей записи
}
//--------------------------------------------------------------void __fastcall TForm5::Button5Click(TObject *Sender)
{
ADODataSet1->Edit(); // Редактирование записи
Button1->Enabled=True;
Button2->Enabled=True;
Button3->Enabled=False;
Button4->Enabled=False;
Button5->Enabled=False;
Button6->Enabled=True;
Button7->Enabled=False;
Button8->Enabled=False;
DBLookupComboBox1->ReadOnly=False;
DBLookupComboBox2->ReadOnly=False;
DBLookupComboBox3->ReadOnly=False;
DBEdit3->ReadOnly=False;
DBEdit4->ReadOnly=False;
}
//--------------------------------------------------------------
void __fastcall TForm5::Button6Click(TObject *Sender)
{
ADODataSet1->Post(); // Сохранение изменений
Button1->Enabled=False;
Button2->Enabled=False;
Button3->Enabled=True;
Button4->Enabled=True;
Button5->Enabled=True;
Button6->Enabled=False;
Button7->Enabled=True;
Button8->Enabled=True;
DBLookupComboBox1->ReadOnly=True;
DBLookupComboBox2->ReadOnly=True;
DBLookupComboBox3->ReadOnly=True;
DBEdit3->ReadOnly=True;
DBEdit4->ReadOnly=True;
}
//--------------------------------------------------------------void __fastcall TForm5::Button7Click(TObject *Sender)
{
ADODataSet1->Insert(); // Вставка новой записи
Button1->Enabled=True;
Button2->Enabled=True;
Button3->Enabled=False;
Button4->Enabled=False;
Button5->Enabled=False;
Button6->Enabled=True;
Button7->Enabled=False;
Button8->Enabled=False;
DBLookupComboBox1->ReadOnly=False;
DBLookupComboBox2->ReadOnly=False;
DBLookupComboBox3->ReadOnly=False;
DBEdit3->ReadOnly=False;
DBEdit4->ReadOnly=False;
}
//--------------------------------------------------------------void __fastcall TForm5::Button8Click(TObject *Sender)
{
if (MessageBox(0,"Удалить поставку? ","Удаление поставки",MB_YESNO)==IDYES)
{
ADODataSet1->Delete();
}
}
//--------------------------------------------------------------void __fastcall TForm5::Button1Click(TObject *Sender)
{
Form1->n=1;
Form6->ShowModal();
}
//--------------------------------------------------------------void __fastcall TForm5::Button2Click(TObject *Sender)
{
Form1->n=2;
Form6->ShowModal();
}
//--------------------------------------------------------------
Создайте обработчик нажатия кнопки ОК формы «Ввод даты и времени»:
void __fastcall TForm6::Button1Click(TObject *Sender)
{
int n=Form1->n;
switch(n)
{
case 1: //Дата начала
{
DateTimePicker1->Time=DateTimePicker2->Time;
Form5->DBEdit1->Field->AsDateTime = DateTimePicker1->Date.FormatString("dd.MM.yyyy hh:mm:ss");
break;
}
case 2: //Дата конца
{
DateTimePicker1->Time=DateTimePicker2->Time;
Form5->DBEdit2->Field->AsDateTime = DateTimePicker1->Date.FormatString("dd.MM.yyyy hh:mm:ss");
break;
}
}
Form6->Close();
}