Методическое указание к выполнению практического задания

advertisement
Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
“Тихоокеанский государственный университет”
ПРОЕКТИРОВАНИЕ ИНФОРМАЦИОННЫХ СИСТЕМ
Методические указания к выполнению практического задания № 12
для студентов специальности 071900
“Информационные системы и технологии”
Хабаровск
Издательство ХГТУ
2005
2
УДК 681.58:681.32
Проектирование информационных систем: методические указания к
выполнению практического задания № 12 для студентов специальности 071900
«Информационные системы и технологии» / сост. Г. К. Конопелько. –
Хабаровск: Изд-во Хабар. гос. техн. ун-та, 2005. – 19 с.
Методические
указания
составлены
на
кафедре
«Автоматика
и
системотехника». В них приводятся задание на практическую работу,
требования по оформлению отчета, а также краткие общие сведения. Дается
перечень рекомендованной литературы, необходимой для выполнения задания.
Печатается в соответствии с решениями кафедры "Автоматика и
системотехника"
и
методического
совета
института
информационных
технологий.
© Хабаровский государственный
технический университет, 2005
3
Удаленный доступ к базе данных MySQL с помощью
компонент dbExpress Borland
Цель работы: научиться использовать интерфейс для доступа к удаленной
базе данных MySQL с помощью компонент dbExpress Borland C++ Builder 6
или Delphi 7.
Практическое задание выполняется в локальной сети на рабочей станции с
операционной системой Windows 95/98, 2000, XP или более поздней, с
установленным сервером с
операционной системой Linux версии не ниже
пятой.
Порядок выполнения практического задания
1. Подготовка и допуск к работе
К выполнению практического задания допускаются студенты, которые
подготовились к работе и имеют не более двух невыполненных предыдущих
заданий.
Перед работой студент должен:
 предъявить преподавателю полностью оформленный отчет о
предыдущей работе;
 ответить на вопросы преподавателя.
К работе не допускаются студенты, которые не выполнили одно из
вышеперечисленных требований.
2. Отчёт по работе должен содержать следующее:
- Текст задания.
- Перечень всех использованных в практической работе команд и
инструкций.
- Вывод по работе.
4
Общие сведения
Компоненты управления данными для dbExpress делятся на два вида:
1. Клиентский – Client DataSet.
2. Однонаправленныe – unidirectional dataset.
Клиентский компонент хранит выбранные записи в памяти. Это позволяет
осуществлять
навигацию
в
любом
направлении,
фильтровать
записи,
кешировать и изменять данные и т.д. Именно данный вид используется для
отображения данных.
Однонаправленные запросы не кешируют данные. Передвигаться по ним
можно только в направлении указанном в конструкции ORDER BY SQL
запроса.
Данные
не
могут
быть
изменены.
Однако
такие
запросы
предоставляют быстрый доступ к большим массивам записей.
В таблице приведено краткое описание всех компонент, представленных
на вкладке dbExpress пакета Delphi 7.
Таблица. Компоненты dbExpress и их свойства
Свойства
Описание
SQLConnection
Компонент для организации связи с сервером базы данных. Аналог Database
в BDE. Позволяет управлять параметрами соединения с сервером БД, такие как
путь к базе данных, имя и пароль пользователя и т.д.
Connected:boolean
Признак установления соединения с БД. True –
соединение активно.
ConnectionName: string
Имя конфигурации, содержащей параметры
соединения. Аналог AliasName в TDatabase для BDE.
DriverName: string
Имя драйвера для соединения. (DB2, Interbase,
Oracle, MySQL).
Устанавливается автоматически при установке
свойства ConnectionName.
KeepConnection: boolean
Поддерживать соединение с сервером БД, если в
приложении нет активизированных DataSet.
LibraryName: string
Имя библиотеки, содержащей драйвер для связи с
сервером БД.
5
Продолжение таблицы
Свойства
Описание
LoadParamsOnConnect:
Загружать
ли
параметры
соединения,
boolean
ассоциированные с именем соединения, перед
установкой соединения в “run time”. Полезно в
случае, когда параметры соединения могут быть
изменены вне приложения или меняются в “design
time”.
LoginPrompt: Boolean
Запрашивать “логин” и “пароль” при соединении.
Name: TComponentName
Имя компонента.
Params: TStrings
Параметры соединения.
TableScope:
Параметры видимости таблиц:
TTableScopes
TsSynonym – видеть синонимы,
TsSysTable – видеть системные таблицы,
TsTable – видеть таблицы,
TsView – видеть просмотры.
VendorLib: string
Имя библиотеки с клиентской частью БД.
SQLDataSet
Однонаправленный компонент общего назначения.
Active: boolean
Активность компонента.
CommandText: string
Текст команды (запроса) на получение или
манипуляции с данными.
CommandType:
Тип:
TSQLCommandType
CtQuery – SQL запрос,
CtTable – таблица, автоматически генерирует
запрос на выборку всех записей по всем полям,
CtStoredProc – хранимая процедура.
DataSource: TDataSource
Источник данных для мастер DataSet.
MaxBlobSize: integer
Максимальный размер BLOB полей.
ObjectView: Boolean
Включить иерархическое представление для
вложенных полей.
ParamCheck:Boolean
Обновлять список параметров при изменении
текста команды
Params:Tparams
Список параметров команды.
SortFieldNames: string
Список полей для сортировки, поля разделяются
точкой с запятой. Действует для CommandType
ctTable.
SQLConnection:
Имя компонента SQLConnection через который
TSQLConnection
будет происходить работа с БД.
Tag: integer
Тэг.
SQLQuery
Запрос к БД (однонаправленный)
Active: boolean
Активность запроса.
6
Продолжение таблицы
Свойства
Описание
DataSource: TDataSource
Источник данных для мастер DataSet.
MaxBlobSize: integer
Максимальный размер BLOB полей.
ObjectView: Boolean
Включить иерархическое представление для
вложенных полей.
ParamCheck:Boolean
Обновлять список параметров при изменении
текста запроса.
Params:Tparams
Список параметров запроса.
SQL:TStrings
Текст запроса.
SQLConnection:
Имя компонента SQLConnection через который
TSQLConnection
будет происходить работа с БД.
Tag: integer
Тэг.
SQLStoredProc
Хранимая процедура (в случае получения данных – однонаправленная)
Active: boolean
Активность хранимой процедуры.
MaxBlobSize: integer
Максимальный размер BLOB полей.
ObjectView: Boolean
Включить иерархическое представление для
вложенных полей.
ParamCheck:Boolean
Обновлять список параметров при изменении
процедуры.
Params:Tparams
Список параметров процедуры.
SQLConnection:
Имя компонента SQLConnection через который
TSQLConnection
будет происходить работа с БД.
Tag: integer
Тэг.
SQLTable
Таблица базы данных (однонаправленный запрос)
Active: boolean
Активность таблицы.
IndexFieldNames: string
Список полей сортировки (через точку с запятой).
IndexName: string
Имя
индекса
сортировки.
Возможно
использование либо IndexName или IndexFieldNames.
MasterSource:
Мастер источник данных для организации
TdataSource
отношений главный-подчиненный (master-detail).
MasterFields:string
Поля связи главный-подчиненный.
MaxBlobSize: integer
Максимальный размер BLOB полей.
ObjectView: Boolean
Включить иерархическое представление для
вложенных полей.
SQLConnection:
Имя компонента SQLConnection через который
TSQLConnection
будет происходить работа с БД.
TableName: string
Имя таблицы БД, из которой будут выбраны
данные.
Tag: integer
Тэг.
7
Продолжение таблицы
Описание
Свойства
SQLMonitor
Организация наблюдения за работой компонентов доступа к данным
Active: boolean
Активность монитора.
AutoSave: Boolean
Автоматическое сохранения журнала событий в
файл, указанном в FileName.
FileName: string
Имя файла для хранения журнала событий.
SQLConnection:
Имя компонента SQLConnection через который
TSQLConnection
будет происходить работа с БД.
Tag: integer
Тэг.
TraceList:Tstrings
Журнал событий.
SQLClientDataSet
Клиентский DataSet общего назначения
Active: boolean
Активность DataSet.
Aggregates: Taggregates
Список доступных агрегатов.
AggregatesActive:
Вычисление агрегатов.
boolean
AutoCalcFields: boolean
Генерировать событие OnCalcFields и обновлять
Lookup поля:
True:
· при открытии DataSet,
· при переходе DataSet в состояние dsEdit,
· передача фокуса ввода другому компоненту или
другому столбцу (для сетки) при наличии изменений
в текущей ячейке.
False
· при открытии DataSet,
· при переходе DataSet в состояние dsEdit,
· запись извлекается из БД
CommandText: string
Текст команды для выполнения (SQL запрос).
При установке св-ва FileName данное св-во
игнорируется.
При
сбросе
флага
poAllowCommandText в св-ве Options текст команды
также игнорируется.
CommandType:
Тип DataSet:
TSQLCommandType
CtQuery – SQL запрос,
CtTable – таблица, автоматически генерирует
запрос на выборку всех записей по всем полям,
CtStoredProc – хранимая процедура.
ConnectionName: string
Имя конфигурации, содержащей параметры
соединения. Аналог AliasName в TDatabase для BDE.
Constraints: TConstraints
Ограничения на значения на уровне одной записи.
8
Окончание таблицы
Свойства
Описание
DBConnection:
Имя компонента SQLConnection через который
TSQLConnection
будет происходить работа с БД.
DisableStringTrim:
Удалять конечные пробелы в строковых полях
boolean
при их вставке БД.
FetchOnDemand: boolean
Получать данные по мере необходимости.
FieldDefs: TFieldDefs
Определения полей.
FileName: string
Имя файла для сохранения кеша данных.
Filter: string
Фильтр.
Filtered: Boolean
Включение фильтрации.
FilterOptions:
Параметры фильтрации.
TFilterOptions
IndexDefs: TindexDefs
Определения индексов.
IndexFieldNames: string
Список полей сортировки (через точку с запятой).
IndexName: string
Имя
индекса
сортировки.
Возможно
использование
либо
IndexName
либо
IndexFieldNames.
MasterSource:
Мастер источник данных для организации
TdataSource
отношений главный-подчиненный (master-detail).
MasterFields:string
Поля связи главный-подчиненный.
ObjectView: Boolean
Включить иерархическое представление для
вложенных полей.
Options:
Параметры работы с данными.
TProviderOptions
PacketRecord: integer
Количество записей в одном пакете данных:
 1 – все,
 >0 – количество,
 0 – включать в пакет только метаданные.
Params: Tparams
Значение параметров для выборки данных.
ReadOnly: Boolean
Доступ только для чтения.
Tag: integer
Тэг.
UpdateMode:
Способ поиска записи при записи изменений:
TUpdateMode
UpWhereAll – использовать все поля,
UpWhereChanged – ключевые поля + старые
значения измененных полей,
UpWhereKeyOnly – только ключевые поля.
Ниже приводится порядок выполнения части практической работы для
примера, описание которого находится в папке …/laba12/Example12.
Практическое задание выполняется в среде Delphi 7 (или С++ Builder 6).
9
Перед
работой
с
проектом
необходимо
в
папку
“C:\Program
Files\Borland\Delphi7\Bin” и в папку с файлами проекта скопировать файл
библиотеки “libmysql.dll” из папки “C:\Program Files\MySQL\AdminMySQL”
(это необходимо для обновления версии библиотеки). После этого порядок
выполнения работы может быть следующим.
1. Запустить Delphi 7.
2. Создать новый проект.
3. На главной форме разместить следующие компоненты доступа к
базе данных:
- из вкладки dbExpress:
 TSQLConnection,
 TSQLTable,
 TSQLDataSet
- и из вкладки DataAccess:
 TDataSource.
4. Компонент SQLConnection1 настраивают следующим образом:
 Изменяют свойство “Params”: HostName – записывают IP-адрес
удаленного сервера, на котором установлен сервер MySQL
(10.10.146.1), DataBase – указывают имя существующей базы
данных (laba12), User_Name – указывают имя пользователя для
базы данных (root), Password – пароль для указанного
пользователя.
 В свойстве “Driver” выбирают из списка MySQLConnection для
старых версий СУБД или DevartMySQL для Delphi 7 или
DevartMySQLDirect для XE4.
10
 В
свойстве
“ConnectionNames”
выбирают
из
списка
MySQLConnection для старых версий СУБД или DevartMySQL
для Delphi 7 или DevartMySQLDirect для XE4.
 В случае правильной установки всех свойств и наличия на
указанном компьютере указанной базы данных в свойстве
Connected можно будет в качестве теста установить значение
True, в противном случае это сделать будет невозможно.
На рис. 1 показан вид инспектора объектов для компоненты
SQLConnection1.
Рис. 1. Инспектор объектов для SQLConection1
5. Компонент SQLTable1 настраивают следующим образом:
 В свойстве SQLConnection выбирают из списка установленный
ранее компонент SQLConnection1.
 В свойстве TableName выбирают из списка (или записывают)
имя существующей в базе данных таблицы (laba12).
11
На рис. 2. показан вид инспектора объектов для компоненты
SQLTable1.
Рис. 2. Вид инспектора объектов для SQLTable1
6. Вид инспектора объектов для компоненты DataSource1 показан на
рис. 3. Для этой компоненты устанавливают свойство “DataSet”, выбрав из
списка запись “SQLTable1”.
12
Рис. 3. Вид инспектора объектов для DataSource
7. Компоненту SQLDataSet1 настраивают следующим образом:
 В
свойстве
“SQLConnection”
выбирают
из
списка
выбирают
из
списка
“SQLConnection1”.
 В
свойстве
“CommandType”
“ctQuery”.
 В свойстве “CommandText” записывают или с помощью
“CommandText Editor” устанавливают значение “select *
from laba12”.
Вид инспектора объектов для компоненты SQLDataSet1 показан на
рис. 4.
13
Рис. 4. Вид инспектора объектов для SQLDataSet1
8. В дополнение к установленным компонентам доступа к базе
данных установить следующие компоненты для отображения значений из
полей таблицы и управления проектом:
 DBText – 2 шт.
 DBImage – 1 шт.
 Image – 1 шт.
 DBMemo – 1 шт.
 DBNavigator – 1 шт.
 Button – 2 шт.
Общий вид формы с установленными компонентами показан на рис. 5.
14
Рис. 5. Форма с установленными компонентами
9. Для компонент DBText1, DBtext2, DBImage1 и DBMemo1
изменяют два свойства – это “DataSource” и “DataField”. Свойству
“DataSource”
присваивают
значение
“DataSource1”,
а свойству
“DataField” – имя соответствующего поля таблицы “laba12”.
10. Вид инспектора объектов для компоненты Image1 показан на рис.
6. Необходимым условием правильной работы приложения является
заполнения свойства “picture” из “Редактора Рисунка”.
15
Рис. 6. Инспектор объектов для Image1
11. Нажатием
кнопки
Button1
“Соединиться
с
БД”
следует
активировать все компоненты соединения с базой данных и заполнить
форму данными из первой записи БД:
SQLConnection1.Connected := True;
SQLDataSet1.Active := True;
SQLTable1.Active := True;
Stream1 :=
SQLDataSet1.CreateBlobStream(SQLDataSet1.FieldByName('photo') as
TBlobField, bmRead);
16
try
Image1.Picture.Graphic.LoadFromStream(Stream1);
finally
Stream1.Free;
end;
Button1.Enabled:=False;
Примечание: переменная Stream1 объявляется в разделе “var” модуля
как Stream1 : TStream;
12. Кнопка “Закончить” закрывает приложение.
13. Для обновления компонент, не являющихся компонентами из
вкладки “Data Controls” (в рассматриваемом примере это Image1),
необходима специальная процедура, например обработчик событий от
“DBNavigator1”:
case Button of
nbNext:
begin
SQLDataSet1.Next;
Stream1
SQLDataSet1.CreateBlobStream(SQLDataSet1.FieldByName('photo')
:=
as
TBlobField, bmRead);
try
Image1.Picture.Graphic.LoadFromStream(Stream1);
finally
Stream1.Free;
end;
end;
nbLast:
begin
SQLDataSet1.Last;
Stream1
SQLDataSet1.CreateBlobStream(SQLDataSet1.FieldByName('photo')
TBlobField, bmRead);
:=
as
17
try
Image1.Picture.Graphic.LoadFromStream(Stream1);
finally
Stream1.Free;
end;
end;
end;
Примечание: переменная “Button” передается как параметр процедуры, текст
которой приведен выше.
15. Добавить в проект новую форму, обеспечить её вызов из главной
формы, разместить на ней компоненты, необходимые для выполнения
пункта 2 задания на практическую работу в полном объеме.
16. Откомпилировать программу, убедиться в её работоспособности,
продемонстрировать работу программы преподавателю.
17. Составить отчет по лабораторной работе.
Задание на практическую работу
1. Для выполнения работы рекомендуется использовать БД, созданную в
предыдущих лабораторных работах.
2. Разработать программу удаленного доступа БД MySQL, используя
компоненты dbExpress. Программа должна позволять выполнять
следующие функции:
 открывать базу данных, если она уже существует или создавать
новую базу данных,
 просматривать все записи в таблице,
 делать выборку с сортировкой записей по заданному полю,
 делать выборку по значению одного из полей таблицы.
18
Содержание отчета
1. Цель работы.
2. Описание и исходные тексты (с комментариями) созданных процедур для
работы с БД.
3. Выводы.
Контрольные вопросы
1. Какие компоненты нужны для соединения с БД MySQL.
2. Назначение компонент SQLDataSet, SQLTable.
3. Какие свойства компонент отображения данных из БД необходимо
изменять.
4. Что такое однонаправленные запросы.
5. Как обеспечивается возможность редактирования данных в БД
MySQL.
Библиографический список
1. Документация к СУБД MySQL. – Электр. дан. Режим доступа:
http://www.mysql.org.
2. Практикум к лабораторным работам по дисциплине «Корпоративные
информационные
системы.
–
Электр.
дан.
Режим
доступа:
\\aisnt\aisw\kurs4\kis.
3. Иллюстрированный самоучитель по Delphi 7 для профессионалов. –
Электр. дан. Режим доступа:
http://epic.centersti.com/info/PROGR/Delphi7%20prof/index.html.
19
ПРОЕКТИРОВАНИЕ ИНФОРМАЦИОННЫХ СИСТЕМ
Методические указания к выполнению практического задания № 12
для студентов специальности 071900 «Информационные системы и
технологии»
Конопелько Геннадий Константинович
20
Главный редактор Л. А. Суевалова
Редактор __________
Компьютерная верстка Г. К. Конопелько
Подписано в печать
. Формат 60х84 1/16.
Бумага писчая. Гарнитура “Таймс”. Печать офсетная. Усл. печ. л. ____.
Тираж 100 экз. Заказ
.
Издательство Хабаровского государственного технического университета.
680035, Хабаровск, ул. Тихоокеанская, 136.
Отдел оперативной полиграфии издательства
Хабаровского государственного технического университета.
680035, Хабаровск, ул. Тихоокеанская, 136.
Download