Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ВУМИП 2012-07-06.doc
Скачиваний:
66
Добавлен:
13.05.2015
Размер:
9.35 Mб
Скачать

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

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

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

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

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

На странице Providerможно выбрать для СУБДAccessпостав­щикMocrosoftJetOLEDBProviderилиMicrosoftOLEDBProviderforODBCDrivers. Выберем последний как более универсальный и нажмем клавишу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.

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

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

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 ‑ поле/запись/набор будет изменен.

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

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

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

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