Доступ к данным по технологии 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.

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/FieldChangeComplete‑ завершена корректировка на­бо­ра/поля.

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) других компонентов.

Вопросы для самопроверки и контроля

Вопросы для самопроверки

1. Что содержит модуль данных и для чего он используется?

2. Каково назначение компонента Table?

3. Каково назначение компонента DataSource?

4. Каково назначение компонентаDBGrid?

5. Каково назначение компонентаDBNavigator?

6. Каково назначение компонентаDBText?

7. Каково назначение компонентаDBEdit?

8. Каково назначение запросов?

9. Что такое «подзапрос»?

10. Каково назначение транзакции?

11. Каковы дополнительные возможности клиент‑серверных СУБД?

Контрольные вопросы

1. Должны ли быть динамические поля в таблице?

2. Можно ли редактировать динамические поля?

3. Постоянные(виртуальные или псевдополя) поля должны быть в таблице?

4. Постоянные(виртуальные или псевдополя) поля можно редактировать?

5. Каково назначение базового запроса?

6. Допускается ли вложенность запросов?

7. Каково назначение компонента QuickRep?

8. Какая технология доступа к данным более универсальная: ADO (ActiveX Data Objects) или BDE (Borland Database Engine)?









Дата добавления: 2016-03-22; просмотров: 975;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.014 сек.