Федеральное агентство по образованию

Государственное образовательное учреждение

высшего профессионального образования

“Тихоокеанский государственный университет”

ПРОЕКТИРОВАНИЕ ИНФОРМАЦИОННЫХ СИСТЕМ

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

для студентов специальности 071900

“Информационные системы и технологии”

Хабаровск

Издательство ХГТУ

2005

УДК 681.58:681.32

Проектирование информационных систем: методические указания к выполнению практического задания № 12 для студентов специальности 071900 «Информационные системы и технологии» / сост. . – Хабаровск: Изд-во Хабар. гос. техн. ун-та, 2005. – 19 с.

Методические указания составлены на кафедре «Автоматика и системотехника». В них приводятся задание на практическую работу, требования по оформлению отчета, а также краткие общие сведения. Дается перечень рекомендованной литературы, необходимой для выполнения задания.

Печатается в соответствии с решениями кафедры "Автоматика и системотехника" и методического совета института информационных технологий.

© Хабаровский государственный

технический университет, 2005

Удаленный доступ к базе данных MySQL с помощью

компонент dbExpress Borland

Цель работы: научиться использовать интерфейс для доступа к удаленной базе данных MySQL с помощью компонент dbExpress Borland C++ Builder 6 или Delphi 7.

Практическое задание выполняется в локальной сети на рабочей станции с операционной системой Windows 95/98, 2000, XP или более поздней, с установленным сервером с операционной системой Linux версии не ниже пятой.

НЕ нашли? Не то? Что вы ищете?

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

1. Подготовка и допуск к работе

К выполнению практического задания допускаются студенты, которые подготовились к работе и имеют не более двух невыполненных предыдущих заданий.

Перед работой студент должен:

·  предъявить преподавателю полностью оформленный отчет о предыдущей работе;

·  ответить на вопросы преподавателя.

К работе не допускаются студенты, которые не выполнили одно из вышеперечисленных требований.

2. Отчёт по работе должен содержать следующее:

- Текст задания.

- Перечень всех использованных в практической работе команд и инструкций.

- Вывод по работе.

Общие сведения

Компоненты управления данными для 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

Имя библиотеки, содержащей драйвер для связи с сервером БД.

Продолжение таблицы

Свойства

Описание

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: TSQLConnection

Имя компонента SQLConnection через который будет происходить работа с БД.

Tag: integer

Тэг.

SQLQuery

Запрос к БД (однонаправленный)

Active: boolean

Активность запроса.

Продолжение таблицы

Свойства

Описание

DataSource: TDataSource

Источник данных для мастер DataSet.

MaxBlobSize: integer

Максимальный размер BLOB полей.

ObjectView: Boolean

Включить иерархическое представление для вложенных полей.

ParamCheck:Boolean

Обновлять список параметров при изменении текста запроса.

Params:Tparams

Список параметров запроса.

SQL:TStrings

Текст запроса.

SQLConnection: TSQLConnection

Имя компонента SQLConnection через который будет происходить работа с БД.

Tag: integer

Тэг.

SQLStoredProc

Хранимая процедура (в случае получения данных – однонаправленная)

Active: boolean

Активность хранимой процедуры.

MaxBlobSize: integer

Максимальный размер BLOB полей.

ObjectView: Boolean

Включить иерархическое представление для вложенных полей.

ParamCheck:Boolean

Обновлять список параметров при изменении процедуры.

Params:Tparams

Список параметров процедуры.

SQLConnection: TSQLConnection

Имя компонента SQLConnection через который будет происходить работа с БД.

Tag: integer

Тэг.

SQLTable

Таблица базы данных (однонаправленный запрос)

Active: boolean

Активность таблицы.

IndexFieldNames: string

Список полей сортировки (через точку с запятой).

IndexName: string

Имя индекса сортировки. Возможно использование либо IndexName или IndexFieldNames.

MasterSource: TdataSource

Мастер источник данных для организации отношений главный-подчиненный (master-detail).

MasterFields:string

Поля связи главный-подчиненный.

MaxBlobSize: integer

Максимальный размер BLOB полей.

ObjectView: Boolean

Включить иерархическое представление для вложенных полей.

SQLConnection: TSQLConnection

Имя компонента SQLConnection через который будет происходить работа с БД.

TableName: string

Имя таблицы БД, из которой будут выбраны данные.

Tag: integer

Тэг.

Продолжение таблицы

Свойства

Описание

SQLMonitor

Организация наблюдения за работой компонентов доступа к данным

Active: boolean

Активность монитора.

AutoSave: Boolean

Автоматическое сохранения журнала событий в файл, указанном в FileName.

FileName: string

Имя файла для хранения журнала событий.

SQLConnection: TSQLConnection

Имя компонента SQLConnection через который будет происходить работа с БД.

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: TSQLCommandType

Тип DataSet:

CtQuery – SQL запрос,

CtTable – таблица, автоматически генерирует запрос на выборку всех записей по всем полям,

CtStoredProc – хранимая процедура.

ConnectionName: string

Имя конфигурации, содержащей параметры соединения. Аналог AliasName в TDatabase для BDE.

Constraints: TConstraints

Ограничения на значения на уровне одной записи.

Окончание таблицы

Свойства

Описание

DBConnection: TSQLConnection

Имя компонента SQLConnection через который будет происходить работа с БД.

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). Перед работой с проектом необходимо в папку “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 – пароль для указанного пользователя.

·  В свойстве “ConnectionNames” выбирают из списка MySQLConnection.

·  В случае правильной установки всех свойств и наличия на указанном компьютере указанной базы данных в свойстве Connected можно будет в качестве теста установить значение True, в противном случае это сделать будет невозможно.

На рис. 1 показан вид инспектора объектов для компоненты SQLConnection1.

Рис. 1. Инспектор объектов для SQLConection1

5.  Компонент SQLTable1 настраивают следующим образом:

·  В свойстве SQLConnection выбирают из списка установленный ранее компонент SQLConnection1.

·  В свойстве TableName выбирают из списка (или записывают) имя существующей в базе данных таблицы (laba12).

На рис. 2. показан вид инспектора объектов для компоненты SQLTable1.

Рис. 2. Вид инспектора объектов для SQLTable1

6.  Вид инспектора объектов для компоненты DataSource1 показан на рис. 3. Для этой компоненты устанавливают свойство “DataSet”, выбрав из списка запись “SQLTable1”.

Рис. 3. Вид инспектора объектов для DataSource

7.  Компоненту SQLDataSet1 настраивают следующим образом:

·  В свойстве “SQLConnection” выбирают из списка “SQLConnection1”.

·  В свойстве “CommandType” выбирают из списка “ctQuery”.

·  В свойстве “CommandText” записывают или с помощью “CommandText Editor” устанавливают значение “select * from laba12”.

Вид инспектора объектов для компоненты SQLDataSet1 показан на рис. 4.

Рис. 4. Вид инспектора объектов для SQLDataSet1

8.  В дополнение к установленным компонентам доступа к базе данных установить следующие компоненты для отображения значений из полей таблицы и управления проектом:

·  DBText – 2 шт.

·  DBImage – 1 шт.

·  Image – 1 шт.

·  DBMemo – 1 шт.

·  DBNavigator – 1 шт.

·  Button – 2 шт.

Общий вид формы с установленными компонентами показан на рис. 5.

Рис. 5. Форма с установленными компонентами

9.  Для компонент DBText1, DBtext2, DBImage1 и DBMemo1 изменяют два свойства – это “DataSource” и “DataField”. Свойству “DataSource” присваивают значение “DataSource1”, а свойству “DataField” – имя соответствующего поля таблицы “laba12”.

10.  Вид инспектора объектов для компоненты Image1 показан на рис. 6. Необходимым условием правильной работы приложения является заполнения свойства “picture” из “Редактора Рисунка”.

Рис. 6. Инспектор объектов для Image1

11.  Нажатием кнопки Button1 “Соединиться с БД” следует активировать все компоненты соединения с базой данных и заполнить форму данными из первой записи БД:

SQLConnection1.Connected := True;

SQLDataSet1.Active := True;

SQLTable1.Active := True;

Stream1 := SQLDataSet1.CreateBlobStream(SQLDataSet1.FieldByName('photo') as TBlobField, bmRead);

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') as TBlobField, bmRead);

try

Image1.Picture. Graphic. LoadFromStream(Stream1);

finally

Stream1.Free;

end;

end;

end;

Примечание: переменная “Button” передается как параметр процедуры, текст которой приведен выше.

15. Добавить в проект новую форму, обеспечить её вызов из главной формы, разместить на ней компоненты, необходимые для выполнения пункта 2 задания на практическую работу в полном объеме.

16. Откомпилировать программу, убедиться в её работоспособности, продемонстрировать работу программы преподавателю.

17. Составить отчет по лабораторной работе.

Задание на практическую работу

1.  Для выполнения работы рекомендуется использовать БД, созданную в предыдущих лабораторных работах.

2.  Разработать программу удаленного доступа БД MySQL, используя компоненты dbExpress. Программа должна позволять выполнять следующие функции:

· открывать базу данных, если она уже существует или создавать новую базу данных,

· просматривать все записи в таблице,

· делать выборку с сортировкой записей по заданному полю,

· делать выборку по значению одного из полей таблицы.

Содержание отчета

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. /info/PROGR/Delphi7%20prof/index. html.

 

ПРОЕКТИРОВАНИЕ ИНФОРМАЦИОННЫХ СИСТЕМ

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

для студентов специальности 071900 «Информационные системы и технологии»

Конопелько Геннадий Константинович

Главный редактор

Редактор __________

Компьютерная верстка

Подписано в печать. Формат 60х84 1/16.

Бумага писчая. Гарнитура “Таймс”. Печать офсетная. Усл. печ. л. ____.

Тираж 100 экз. Заказ.

Издательство Хабаровского государственного технического университета.

Хабаровск, .

Отдел оперативной полиграфии издательства

Хабаровского государственного технического университета.

Хабаровск, .