Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Высокоуровневые методы информатики и программир...docx
Скачиваний:
25
Добавлен:
12.11.2019
Размер:
6.53 Mб
Скачать

3.15. Доступ к данным по технологии ado

Разработанная корпорацией MicroSoft технология ADO (ActiveX Data Objects) обеспечивает более универсаль­ный доступ к любым данным (базы дан­ных, обычные файлы, электронная поч­та, мультимедиа и др.) без исполь­зо­ва­ния механизма BDE. Для каждого типа данных (СУБД) сущест­ву­ет прог­рамма‑поставщик (OLE DB Provider) через которую организуется до­с­туп к данным. Приложение, использующее технологию ADO, не зави­сит от кон­кретной СУБД, т.е. при необ­хо­ди­мос­ти мож­­­но сменить СУБД, не изменяя кода приложения (свойство мас­шта­би­ро­ва­ния приложения). Компоненты этой технологии находятся на панели ADO.

Р екомендуется создавать модуль данных с описанием таблиц базы и вы­числяемых полей и с базовым и другими запросами (п. 3.3).

Рассмотрим использование компонентов на примере обработки таб­ли­цы “Uchjot stroek” базы данных “Учет строек.mdb” с СУБД Access. Создадим новое приложение и разместим на форме компонент связи ADOConnection под именем ADOConnection1. Сформируем значе­ние свойства ConnectionString (строка подключения), нажав кнопку с троеточием в поле ввода значения. В появив­шемся окне нажмем кнопку Build для вызова окна Data Link Properties (рис. 3.15.1).

Рис.3.15.1. Страницы выбора поставщика OLE DB и соединения с базой данных

На странице Provider можно выбрать для СУБД Access постав­щик Mocrosoft Jet OLE DB Provider или Microsoft OLE DB Provider for ODBC Drivers. Выберем последний как более универсальный и нажмем клавишу Next. На странице Connection установим переключатель Use connection st­ring и нажмем кноп­ку Build для выбора нужного файла ба­зы “Учет стро­ек.mdb”. Для проверки соединения нажмем кнопку Test Connection. Закро­ем все окна. Так как при доступе к базе не указываются имя пользователя и па­роль, то установим свойства этого компо­нен­та LoginPrompt=False.

Компоненты этой технологии находятся на панели ADO.

Р екомендуется создавать внешний источник данных ODBC. Командой Пуск/Настройка/Панель управления/Источники данных ODBC (32) запускается Администратор источников данных. Ис­поль­зуя страницу Пользовательский DSN (источники доступны только текущему пользовате­лю), Системный DSN (источники доступны всем пользовате­лям) или Файловый DSN (файлы), можно уста­но­вить дос­туп к конкретному файлу (базе данных, электронной таблице, текстовому файлу): указать DSN‑имя (для ссылки в программах), тип драйвера, пароль, имя пользователя и другую до­полни­тель­ную информа­цию. Кнопками Добавить, Удалить и Настройка мож­но добавлять, удалять и изменять описания источников. При наличии внешнего источника данных имя источника указывается (путем выбора из списка внешних источников) для свойств DatabaseName (компонент Table), ConnectionString/Connection (компоненты ADOConnection, ADOTable) и для других соответствующих свойств компонентов, связанных с базами данных. Таким образом, однократное создание внешнего источника данных ODBC позволяет его многократное использование при разработке приложений на различных языках программирования, что существенно упрощает разработку и корректировку приложений.

Д обавим на форму новый компонент ADOTable со свойствами: Connec­tion=ADOConnection1, TableNa­­­­me=”Uchjot stroek”, Acti­ve=True, Name=ADOTable1. Далее разместим ком­по­нен­ты: DataSource (со свойствами Name=DataSource1, Data­Set=ADO­Tab­le1), DBGrid и DBNavi­ga­tor (DataSource= DataSource1) (рис. 3.15.2).

Рис. 3.15.2. Изображение на форме компонентов и таблицы строек

Рассмотрим остальные компоненты панели ADO.

D ataSet ‑ для работы с набором данных (таблица или запрос).

Основные свойства

CommandText, CommandType, CursorType ‑ текст и тип выполняемой команды (таблица, SQL или хранимая процедура) или курсора.

Connection, ConnectionString ‑ имя компонента связи и источника данных.

CursorLocation ‑ способ использования указателя: со стороны клиента (боль­­ше возможности, но медленная работа) или сервера.

ExecuteOptions ‑ способы выполнения команд.

MarshalOptions ‑ синхронизация клиентского и серверного наборов.

ParamCheck=True ‑ список параметров подстраивается под команду SQL.

Prepared=True - есть предварительная подготовка команды к выполнению.

RecordCount, RecordSize ‑ число записей в наборе и размер записи.

RecordSetState, RecordStatus ‑ состояние объекта ADO и текущей записи.

Основные методы

Clone(...), DeleteRecord (..) ‑ копирование набора, удаление записей.

Requery(...) ‑ обновление набора (перезапуск команды SQL).

Seek(...) ‑ поиск записи по текущему индексу.

Supports(...) ‑ проверка на допустимость вида действия.

Основные события

OnEndOfRecordset ‑ достигнут конец набора.

On Fetch/FieldChange Complete ‑ завершена корректировка на­бо­ра/поля.

OnFetchProgress ‑ периодически генерируется в процессе корректировки.

OnMoveComplete/OnWillMove ‑ выполненно/будет перемещение указателя.

On Record/Recordset ChangeComplete ‑ запись/набор из­ме­нен.

OnWillChange Field/Record/Recordset ‑ поле/запись/набор будет изменен.

A DOCommand ‑ вызывает метод обработки данных (например, команды SQL). Сама команда задается в свойстве CommandText. Метод Execute выполняет команду и возвращает набор, который далее можно использовать (ADODataSet1.RecordSet:=ADOCommand1.Execute).

A DOQuery ‑ компонент для формирования запроса аналогичен ком­по­нен­ту Query. Запрос выполняет­ся методом ExecSQL, который мо­жет возвращать и набор, используемый далее (ADODataSet1.RecordSet:= ADOQuery1.ExecSQL).

A DOStoredProc ‑ для выполнения хранимой процедуры, указанной в свой­ст­ве ProcedureName (формируется автоматически при установ­лении связи через компонент ADOConnection), с параметрами в свойстве Parameters.

R DSConnection ‑ создание многоуровневых приложений; исполь­зу­ет­­ся вмес­то компонента ADOConnection. Для связи с ним имя его указывается в свойстве RDSConnection (вместо Connection) других компонентов.