Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Obrazets-kursovogo-proekta-po-bazam-danny-h (4).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
542.21 Кб
Скачать
  1. Руководство администратора

Для работы необходимо иметь на сервере установленный 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).

  1. Руководство программиста

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), выбираем их тип: для fioVarchar(20), для summaInteger (рис. 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. Свойство DataSourceDataSource1, DataFieldphoto. Картинка должна быть видна, если она имеется в БД (рис. 3.8).

Рисунок 3.8 – Окно с картинкой из БД