4ЛРСоздание приложения для работы с базой данных MySQL_Lazarus.docx
ЛАБОРАТОРНАЯ РАБОТА 4
Тема. Создание приложения для работы с базой данных MySql
Задание Создать приложение для управления базой данных MySQL
Порядок выполнения задания:
1. Изучить пример выполнения лабораторной работы
2. Разработать в среде Lazarus приложения для управления базой данных MySql в
соответствии со своим вариантом(лабораторная работа 1)
3. Ответить на вопросы теста
4. Сдать преподавателю оформленный отчет.
ПРИМЕР ВЫПОЛНЕНИЯ РАБОТЫ:
1 Скопировать в папку с PEACE файл для работы с базой данных MySql.
LibMySql.Dll
2 Открыть приложение Peace.
3 Изменить имя формы (Name) на FPeace, заголовок формы на МИР
4 Cохранить всё в папке PEACE c именем Peace.
5 Установить на форму компоненты и переименовать их:
Компонент
ActionList
MainMenu
PopupMenu
Name
AList
MMenu
PMenu
6 Установите на форму:
панель Panel1 и установите свойство Align=alRight
Splitter 1 (additional)и установите свойство Align=alRight
панель Panel2 и установите свойство Align=alClient
7 Установите на Panel1 две панели:
1 панель Panel3 и установите свойство Align=alTop
Splitter 2 (additional)и установите свойство Align=alTop
панель Panel4 и установите свойство Align=alClient
8 Сохраните и запустите приложение. Проверьте изменение размеров панелей. Покажите
результат преподавателю.
9 Добавить в приложение модуль данных (Файл Создать).
10 Переименовать модуль данных как DM (свойство Name)
11 Сохранить модуль данных
2 12 Подключить модуль данных к модулю FPeace.
13 Сохранить ВСЁ.
14 В модуль данных добавить компоненты и переименовать их
Страница
SqlDb
DataAccess
Компонент
MySql56Connection
SqlTransaction1
TSqlQuery
TSqlQuery
TSqlQuery
TDataSource
TDataSource
TDataSource
Имя
MySQL56Connection1
SqlTransaction1
Sql_Language
Sql_Continent
Sql_Country
DS_Continent
DS_Language
DS_Country
15 Подключите базу данных
Компонент
Свойство
MySQL56Connection1
DatabaseName
HostName
UserName
Значение
Peace
localhost
Root
16 Настройте связи между этими компонентами:
Компонент
Свойство
Значение
MySQL56Connection1
Transaction
SQLTransaction1
Sql_Continent
Database
MySQL56Connection1
3 Sql_Continent
Ds_Continent
Sql_Language
Sql_Language
DS_Language
Sql_Country
Sql_Country
DS_Country
Transaction
DataSet
Database
Transaction
DataSet
Database
Transaction
DataSet
SQLTransaction
SQL_Continent
MySQL56Connection1
SQLTransaction
SQL_Language
MySQL56Connection1
SQLTransaction
Sql_Country
17 Подключение и отключение от базы данных в Lazarus
Будем подключаться к удаленной базе данных не сразу, а после получения явной команды
от пользователя (щелчка по соответствующей кнопке), поэтому установим:
Компонент
Свойство
Значение
MySQL56Connection1
Сonnected
TSQLTransaction1
Sql_Continent
Sql_Language
Sql_Country
Active
Active
Active
Active
false
false
false
false
false
18 Активировать компонент AList (ActionList) и добавить действие Action1 . Переименуйте
Action1 в Connect.
19 Активируем компонент MMenu и добавляем меню Файл пункт Соединиться с БД и
устанавливаем свойство Name соответсвенно:
Компонент
Свойство
Значение
4 NewItem1
NewItem2
Name
Caption
Name
Caption
Action
MFile
Файл
MConnect
Соединиться с БД
Connect
20 Вносим изменения в интерфейс приложения:
устанавливаем на Panel2 новую панель Panel 5(свойство Align=alTop)
Splitter 3 (additional)и установите свойство Align=alBottom
добавляем компонент DbGrid (страница DataControls) и изменяем свойства:
свойство
Name
Align
DataSource
на панель Panel3 добавляем компонент DbGrid (страница DataControls) и изменяем свойства:
значение
DbG_Contry
AlClient
DM.DS_Country
свойство
Name
Align
DataSource
значение
DbG_Continent
AlTop
DM.DS_Continent
на панель Panel4 добавляем компонент DbGrid (страница DataControls) и изменяем свойства:
свойство
Name
Align
DataSource
значение
DbG_Language
AlTop
DM.DS_Language
21 Прописываем программный код для соединения с базой данных. Для этого активируем
компонент AList, и двойным щелчком в колонке Действие активируем Connect, после чего
попадаем в процедуру:
5 Вносим изменения в программный код:
procedure TF_Peace.ConnectExecute(Sender: TObject);
var
isAllOk:boolean;
begin
//подключаемся к БД
isAllOk:=true;
try
DM.MySQL56Connection1.Connected:=true;
except
ShowMessage(' Не могу подключиться к базе данных');
exit;
end;
try
DM.SQLTransaction1.Active:=true;
except
ShowMessage(' Не могу создать транзакцию');
exit;
end;
try
// устанавливаем связь с таблицей Country
DM.SQL_Country.Active:=false;
DM.SQL_Country.SQL.Clear;
DM.SQL_Country.sql.add('SET character_set_client='+#39+'utf8'+#39+',
character_set_connection='+#39+'cp1251'+#39+',character_set_results='+#39+'utf8'+#39+';');
DM.SQL_Country.ExecSQL;
DM.SQL_Country.SQL.Clear;
DM.SQL_Country.sql.add('SELECT Country.Country, Country.Capital, Country.Area,
Country.Population, Continent.Continent, Language.Language from Continent LEFT JOIN
Country ON Country.Continent=Continent.Id_continent JOIN language ON
language.ID_language=Country.language;');
DM.SQL_Country.Open;
// Continent
DM.SQL_Continent.Active:=false;
DM.SQL_Continent.SQL.Clear;
DM.SQL_Continent.sql.add('SET character_set_client='+#39+'utf8'+#39+',
character_set_connection='+#39+'cp1251'+#39+',character_set_results='+#39+'utf8'+#39+';');
DM.SQL_Continent.ExecSQL;
DM.SQL_Continent.SQL.Clear;
DM.SQL_Continent.sql.add('SELECT * from continent');
DM.SQL_Continent.Open;
// Language
DM.SQL_Language.Active:=false;
DM.SQL_Language.SQL.Clear;
6 DM.SQL_Language.sql.add('SET character_set_client='+#39+'utf8'+#39+',
character_set_connection='+#39+'cp1251'+#39+',character_set_results='+#39+'utf8'+#39+';');
DM.SQL_Language.ExecSQL;
DM.SQL_Language.SQL.Clear;
DM.SQL_Language.sql.add('SELECT * from Language');
DM.SQL_Language.Open;
except
ShowMessage(' Ошибка при выполнении SQL запроса.');
exit;
end;
end;
21 Сохраняем изменения и проверяем работу приложения
22 Прописываем программный код для разрыва соединения с базой данных.
С целью оптимизации программного кода создаём в две процедуры:
Table_No_active(); для разрыва связи с таблицами
Table_active(); устанавливает связь со всеми таблицами
Добавляем их САМОСТОЯТЕЛЬНО в начало программного кода:
Далее активируем компонент AList, в колонке Действие добавляем NoConnect, и двойным
щелчком попадаем в процедуру:
7 Теперь осталось добавить в меню пункт Разорвать соединение с БД. Для этого активируем
компонент MMenu, добавляем пункт и изменяем свойства:
Компонент
NewItem3
Свойство
Name
Caption
Action
Значение
MNoConnect
Разорвать соединение с БД
NoConnect
23 Сохраняем изменения и проверяем работу приложения
24 Показать результат преподавателю.
25 Ответить на вопросы теста.
26 Внести изменения для соединения с БД в приложение по индивидуальному заданию
(лабораторная работа 1)
8
Комплект лабораторных работ по теме "Работа с базой данных MySql в Lazarus"
Комплект лабораторных работ по теме "Работа с базой данных MySql в Lazarus"
Комплект лабораторных работ по теме "Работа с базой данных MySql в Lazarus"
Комплект лабораторных работ по теме "Работа с базой данных MySql в Lazarus"
Комплект лабораторных работ по теме "Работа с базой данных MySql в Lazarus"
Комплект лабораторных работ по теме "Работа с базой данных MySql в Lazarus"
Комплект лабораторных работ по теме "Работа с базой данных MySql в Lazarus"
Комплект лабораторных работ по теме "Работа с базой данных MySql в Lazarus"
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.