- •Курсовой проект
- •Задание на курсовое проектирование
- •О главление
- •Техническое обеспечение и сетевое взаимодействие
- •Защита информации
- •Руководство администратора
- •3.4.2 Создаем приложение, работающее с бд
- •3.5 Связь с бд в Microsoft Access
- •Список литературы
- •Исходный код программы
- •Последний лист курсового проекта
Руководство администратора
Для работы необходимо иметь на сервере установленный MySQL. Если этого нет, надо скачать его с сайта ЧГУ и установить (программа свободно распространяемая). Администратор БД должен создать учетную запись пользователя MySQL, например командой
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON bd1.* TO user@'%' IDENTIFIED BY 'useruser';
При входе в MySQL Query Browser нужно будет вводить имя базы данных (БД) (Default Schema = bd1). Если будет использоваться другая БД, надо вводить другое имя.
С сайта http://dev.mysql.com/downloads/connector/odbc/5.1.html загружаем mysql-connector-odbc-5.1.11-win32.msi – провайдер MySQL для ODBC. Устанавливаем (см. ниже), перезагружаем компьютер.
Работа выполняется в локальной сети, поэтому провайдер MySQL для ODBC надо установить на клиентском компьютере. Затем на нем перейти в Панель управления (с правами администратора), выбрать Администрирование, затем Источники данных (ODBC), в закладке «Пользовательский DSN» нажать кнопку «Добавить». В появившемся списке выбираем «MySQL ODBC 5.1 Driver» и нажимаем кнопку «Готово». Появляется окно настроек, где пишем имя источника данных, например, «MySQLlaba». Указываем IP-адрес сервера (определяется на серверном компьютере командой ipconfig), порт оставляем без изменения. Вводим значения User – «user», Password – «useruser». Выбираем базу данных из списка напротив Database, например, «bd1». Нажимаем кнопку «Test», должно появиться окно (см. рис. 3.4).
Руководство программиста
3.4.1 Создаем базу данных в MySQL
Для этого запускаем MySQL Query Browser, вводим имя пользователя «user» и пароль и «useruser» (см. рис. 3.1).
Рисунок 3.1 – Окно входа в MySQL Query Browser
В группе Schemata нажимаем ПКМ и в списке выбираем «Create New Schema» (создание новой базы). Вводим имя базы, например bd2. Нажимаем на bd2 с помощью ПКМ и выбираем в списке «Create New Table». Появляется окно, где вводится имя таблицы (например, t2), затем заполняем имена столбцов (Column), выбираем их тип: для fio – Varchar(20), для summa – Integer (рис. 3.2).
Рисунок 3.2 – Структура создаваемой таблицы
Нажимаем на кнопку «Apply Changes», в появившемся окне с текстом запроса – «Execute», затем «Close». Чтобы заполнить таблицу данными, в группе Schemata находим созданную таблицу, дважды нажимаем. Вверху можно прочитать текст запроса на выборку всех записей «SELECT * FROM bd2.t2 t;», нажимаем около него кнопку «Execute». Вначале таблица пуста, нажимаем внизу «Edit» и вводим данные. В конце нажимаем внизу «Apply Changes» для внесения изменений.
Для добавления столбцов выбираем «Edit Table» после нажатия ПКМ на таблицу, вводим, например, Column Name = Photo, Datatype = BLOB, убираем галочку «Not Null», нажимаем кнопку «Apply Changes».
3.4.2 Создаем приложение, работающее с бд
Запускаем Turbo Delphi, создаем новое Win32 приложение. На форму ставим две панели. Устанавливаем свойства (табл. 1). На нижнюю панель ставим кнопку Button1, текстовое поле Edit1 и DBNavigator1 из группы DataControls. На верхнюю панель ставим DBGrid1, DataSource1, а из группы DBGo - компоненты ADOConnection1 и ADOTable1.
Таблица 1 – Устанавливаемые свойства компонентов
Свойство |
Компонента |
Устанавливаем в |
Для чего |
Align |
Panel1 |
AlBottom |
Чтобы она была низом для Panel2 |
Align |
Panel2 |
AlСlient |
Чтобы занимала все оставшееся место |
Caption |
Panel2.Button1 |
«Найти» |
Для поиска |
Text |
Panel2.Edit1 |
«Текст» |
Вводимый текст |
DataSet |
DataSource1 |
ADOTable1 |
– |
DataSource |
DBGrid1 и DBNavigator1 |
DataSource1 |
– |
Provider |
ADOConnection1 |
MSDASQL.1 |
– |
БД в СУБД MySQL может выглядеть следующим образом (см. рис. 3.3).
Рисунок 3.3 – БД в MySQL
Свойство TableName компонента ADOTable1 устанавливаем в t1. Напротив свойства ConnectionString нажимаем многоточие, в появившемся окне нажимаем кнопку Build. В закладке «Поставщик данных» выбираем «Microsoft OLE DB Provider for ODBC Drivers». В закладке «Подключение», если нет ранее созданного имени источника данных, выбираем «Использовать строку подключения» и нажимаем на кнопку «Сборка». В появившемся окне выбираем закладку «Источник данных компьютера» и нажимаем кнопку «Создать». Затем выбираем, пользовательский будет источник данных или системный (т.е. только для данного пользователя или для всех пользователей данного компьютера) и нажимаем кнопку «Далее». В появившемся списке выбираем «MySQL ODBC 5.1 Driver» и нажимаем кнопку «Готово». Появляется окно настроек, где пишем имя источника данных, например, «MySQLlaba». Вводим значения User – «user», Password – «useruser». Выбираем базу данных из списка напротив Database, а именно «bd1». Нажимаем кнопку «Test», появляется окно (см. рис. 3.4).
Рисунок 3.4 – Окно успешного соединения
Нажимаем ОК шесть раз (в разных окнах). Для компонента ADOTable1 свойство Active устанавливаем в True, в появившемся окне вводим имя и пароль пользователя MySQL. После этого DBGrig1 должен показывать значения данных.
Сохраняем проект, запускаем его. Проверяем работу компонента DBNavigator1 (перемещение по записям, их добавление и удаление). Вид программы (рис. 3.5):
Рисунок 3.5 – Скриншот программы
Закрываем программу и нажимаем дважды на кнопку «Найти». Вводим текст для процедуры обработчика нажатия кнопки (где стоит курсор):
var s:string; begin s:=Edit1.Text;Adotable1.Locate('Fio',s,[]) end;
Запускаем еще раз проект и проверяем, выполняется ли поиск введенного в поле Edit1 текста. Для размещения элементов слева от DBGrid1 изменяем его свойство Align на alCustom, оттягиваем вправо и помещаем слева от него еще одну панель Panel3 со свойством Align = alLeft. Возвращаем для DBGrid1 свойство Align в alClient.
3.4.3 Работа с рисунками
Помещаем на форму или панель диалоги открытия OpenDialog1 и сохранения SaveDialog1, и две кнопки, Button3 и Button2, дав им названия Save to DB и From DB (рис. 3.6).
Рисунок 3.6 – Диалоги и кнопки
Для диалогов устанавливаем фильтры (рис. 3.7)
Рисунок 3.7 – Установка фильтров
Дважды нажимаем на «Save to DB» и для появившейся процедуры вводим текст (листинг 3.1):
procedure TForm1.Button3Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
ADOTable1.Edit;
TBLOBField(ADOTable1.FieldByName('photo')).LoadFromFile( OpenDialog1.FileName);
AdoTAble1.Post;
end else
Exit;
end;
Листинг 3.1
Дважды нажимаем на «From DB» и для появившейся процедуры вводим текст (листинг 3.2):
procedure TForm1.Button2Click(Sender: TObject);
begin
if SaveDialog1.Execute then
begin
// ADOTable1.Edit;
TBLOBField(ADOTable1.FieldByName('photo')).SaveToFile(SaveDialog1.FileName);
// AdoTAble1.Post;
end else
Exit;
end;
Листинг 3.2
При вводе фотографий русские названия файлов могут не поддерживаться. MySQL может принимать в BLOB-поля фотографии размером не более 64 кбайт в формате BMP.
MySQL Query Browser может не отображать русские буквы, введенные в БД из другой программы. Delphi может не показывать содержимое текстовых полей из БД MySQL длиннее 10 символов.
По умолчанию данные сохраняются в папке C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.5\data. Вносим в БД рисунки и фотографии, сохраняем их обратно в файлы.
Поместим на панель компонент DBImage1 из набора DataControls. Свойство DataSource – DataSource1, DataField – photo. Картинка должна быть видна, если она имеется в БД (рис. 3.8).
Рисунок 3.8 – Окно с картинкой из БД
