Учебно-методический комплекс дисциплины (опд. Ф. 10) Базы данных (код и название дисциплины по учебному плану специальности)

Вид материалаУчебно-методический комплекс

Содержание


5.2.2. Методические указания к проведению практических занятий
Работа №1. Знакомство с принципами программирования доступа к базам данных в Delphi
Работа №2. Разработка первого приложения баз данных
Подобный материал:
1   ...   7   8   9   10   11   12   13   14   15

5.2.2. Методические указания к проведению практических занятий




Приведенный ниже практикум может быть использован для проведения лабораторных и практических занятий при изучении курсов “Базы данных”. Основной теоретический материал, необходимый для успешного выполнения практикума изложен в курсе лекций “Базы данных, SQL и все такое”, на который в соответствующих местах есть ссылки, обычно с точностью до главы. Такие ссылки помечены значком . Кроме того, здесь приведены необходимые технические знания, требуемые для выполнения лабораторных работ студентами.

Большинство разделов практикума имеют следующую структуру:
  • приводится материал, являющийся предпосылкой для выполнения заданий лабораторной работы со ссылками на теоретический курс
  • приводятся задания на лабораторную работу (они помечены значком ).

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


Работа №1. Знакомство с принципами программирования доступа к базам данных в Delphi

Для доступа к данным при разработке программ в системе Delphi воспользуемся интерфейсом ADO. ADO (Active Data Objects) - это высокоуровневые компоненты доступа к данным, разработанные Microsoft. (инсталляционный файл – MDAC.EXE (Microsoft Data Access Components)). Другие способы доступа:
  • ODBC – открытый интерфейс доступа к базам данных, довольно старый, надежный, но уступающий своим новым конкурентам
  • Borland BDE – закрытый, “фирменный” интерфейс доступа к базам данных
  • низкоуровневый интерфейс OLE DB, надстройкой над которым и является ADO

ADO позволяет обратиться как к “настольным” (desktop) базам данных (таким как Access, Paradox, FoxPro) так и к “настоящим”, серверным базам данных (Microsoft SQL, Oracle, Interbase). Кроме того, через этот интерфейс возможен доступ к нереляционным источникам данных, таким как XML-файлы, данные почтовой службы и др.

ADO - более новая, по сравнению с ODBC и BDE технология, работает через интерфейс OLE DB. Впрочем, можно использовать ADO и при подключении к источникам ODBC-данных. Однако OLE DB превосходит ODBC по скорости, хотя, будучи относительно молодой, не может пока покрыть весь спектр источников данных, для которых написаны драйверы ODBC.

Что касается операционной системы Windows, то MDAC входит в нее, начиная с Windows 98. Поэтому, в отличие от интерфейса Borland BDE, обычно не требуется установка компонентов ADO на компьютере (по крайней мере в той части, которая касается доступа к СУБД Access и Microsoft SQL Server).

Начиная с версии 5 компоненты для работы с ADO (вкладка ADO на палитре компонентов) включены в инструментальную палитру Delphi. Это VCL-компоненты, разработанные Borland. Они примерно соответствуют старым компонентам доступа к данным, использующим BDE, которые ранее осуществляли основной доступ к данным в Delphi. Вот названия типов новых компонентов: TADOConnection, TADOCommand, TADODataSet, TADOTable, TADOQuery, TADOStoredProc и TRDSConnection.

TADOConnection - это класс, объекты которого инкапсулируют всю функциональность, необходимую для установления связи с конкретным источником данных. Один объект этого класса может использоваться многими объектами классов TADOCommand, TADODataSet, TADOTable, TADOQuery, TADOStoredProc для доступа к данным. Он позволяет управлять параметрами доступа к данным путем задания значений его свойств (схема блокировки (пессимистическая или оптимистическая), тип курсора и его расположение (на сервере или клиенте), уровень изоляции транзакций, тайм-аут и др.). Кроме того, этот класс содержит методы для управления транзакциями и извлечения метаданных о базе данных, с которой установлена связь.

Главное его свойство - ConnectionString (строка подключения) - это несколько подстрок вида «имя параметра = значение», которые описывают, где находятся данные и как к ним подключаться. Значения, которые всегда должны быть в строке подключения - это имя поставщика данных (Data Provider) и имя базы данных.

Пример: фрагмент строки подключения к базе данных Access:


Provider = Microsoft.Jet.OLE DB.4.0;Data Source = C:\db1.mdb


Здесь Microsoft.Jet.OLEDB.4.0 - это “OLE DB поставщик” или “провайдер” данных для баз данных Microsoft Access. Существует множество других провайдеров, например SQL OLE DB.1 - провайдер для СУБД Microsoft SQL. Кроме имени поставщика данных строка подключения может хранить другие параметры (например, имя пользователя и пароль, величину тайм-аута, права доступа и т.п.). Перечень этих свойств зависит от конкретного поставщика данных.

В поставку Windows входит специальный редактор строк подключения. Довольно гибким является решение хранить строку подключения в отдельном файле (а не в тексте программы на Delphi) - это позволит, при необходимости, изменить параметры подключения (например, путь к базе данных или даже тип СУБД) без внесения изменений в программное приложение. Для хранения строк подключения предназначены файлы с расширением UDL (universal data link). Создать UDL-файл просто – в контекстном меню Проводника (Explorer) Windows имеется пункт меню NEW -> Microsoft Data Link File. Если такой пункт отсутствует, можно поступить еще проще - создать пустой текстовый файл с расширением ”UDL”. При попытке открыть такой файл автоматически запускается редактор строк подключения.





Рисунок 1.1. Редактор строк подключений ADO


Выберите провайдер (для баз Access - провайдер называется Microsoft JET 4.0 OLE DB Provider, для MS SQL - OLE DB Provider for SQL server). Нажмите кнопку Далее. На рисунке внешний вид редактора для баз данных Access - введите путь к базе данных, имя пользователя и пароль (если нужно) и нажмите кнопку «Проверить подключение», чтобы убедиться, что все сделано правильно.




Рисунок 1.2. Назначение базы данных в редакторе строк подключений.


После того как UDL-файл готов, можно использовать его в Delphi - создайте новый проект, поместите на форму (или на Data Module) компонент ADOConnection, щелкните по свойству ConnectionString и укажите путь к UDL-файлу, откуда эту строку соединения нужно взять:



Рисунок 1.3. Редактор строк подключений для компонента TADOConnection.


Все остальные компоненты ADO также имеют свойство ConnectionString. Поэтому в принципе можно вообще обойтись без компонента ADOConnection - просто в каждом из используемых компонентов ADOQuery, ADOCommand и т.д. указать путь к этому UDL-файлу. Однако компонент ADOConnection содержит и другие полезные свойств и методы, да и кроме того весьма удобно сосредоточить описание всех особенностей подключения приложения к базе данных в одном месте!


Работа №2. Разработка первого приложения баз данных

Базовый объект ADO – ADOCommand. Он содержит функциональность для передачи команды на сервер (команда может заставить сервер читать или изменить данные). ADO всегда работает в режиме клиент-сервер, даже с локальными (или “настольными”) СУБД. После выполнения команды база данных может вернуть записи (если это была команда на чтение данных) или ничего не вернуть (если это, скажем, была команда на удаление данных). Очевидно, что команды - это строки, написанные на языке SQL.

Компоненты TADOTable и TADOQuery предназначены для того, чтобы программистам, привыкшим работать с BDE и компонентами TTable и TQuery, было бы легче перейти на ADO. Они имеют сходные с TTable и TQuery методы - но не совпадают с ними полностью - поэтому автоматически преобразовать проект, использующий BDE в ADO как правило не получается.

Компонент TADODataset - это компонент, который имеет возможности TADOTable и TADOQuery одновременно - т.е. может быть использован как для выполнения SQL- запроса так и для “прямого” (точнее упрощенного) обращения к какой-либо таблице. Компонент TADOStoredProc - компонент для работы с хранимыми процедурами.


 Задание:

Первое приложение баз данных должно позволить просматривать и редактировать любую таблицу из имеющихся в базе данных. Шаги по созданию первого приложения баз данных:
  1. Создать новый проект. Он состоит из модуля проекта, главной формы и модуля главной формы.
  2. Добавить к проекту модуль DataModule. К проекту должны добавиться форма модуля данных и собственно модуль данных. Изменить имя модуля данных на DM.
  3. Добавить на DM компонент TADOConnection. Изменитьего имя на DBC.
  4. Сформировать с помощью редактора строк подключения к базе данных (для его вызова следует дважды щелкнуть на компонент DBC, размещенный на DM) строку соединения.
  5. Добавить на DM компонент TADOTable. Изменить его имя на DBT.
  6. Подсоединить DBT к существующему соединению с базой данных путем установки его свойства Connection равным ссылке на уже существующий компонент DBC.
  7. Указать имя таблицы, которую будет представлять DBT, путем задания свойства TableName.
  8. Перейти к главной форме приложения. Разместить на ней компонент TDBGrid. Изменить его имя на DBG.
  9. Разместить на ней же компонент TDataSource. Изменить его имя на DBS.
  10. Свойство DBG.DataSource должно указывать на компонент DBS.
  11. Свойство DBS.DataSet должно указывать на компонент DM.DBT.
  12. В обработчик события OnShow главной формы приложения вставить код:

DM.DBT.Open;
  1. В обработчик события OnClose главной формы приложения вставить код:

DM.DBT.Close;

14. Скомпилировать проект и вызвать его на выполнение.




В общем виде, модель взаимодействия объектов доступа к базе данных, в рамках приложения на Delphi, можно изобразить в виде диаграммы:



Рисунок 2.1. Модель взаимодействия объектов доступа к базе данных.


 Задание: воспользуйтесь методом GetTableNames объекта DBC чтобы получить список всех таблиц, имеющихся в Вашей базе данных. Разработайте интерфейсную форму, позволяющую выбирать любую таблицу из имеющихся. Можно воспользоваться готовым приложением для того, чтобы просматривать и редактировать любые таблицы.