Раздел 3 Модель программирования ADO ( объекты данных ActiveX)
Как описано в статье «Введение в ADO в Delphi», ADO представляет собой набор компонентов COM (объектной модели компонентов) (DLL), которые позволяют получать доступ к таким базам данных, как электронная почта и файловые системы. Приложения, написанные с использованием ADO, не требуют BDE. Чтобы использовать ADO для доступа к различным базам данных, вам понадобится библиотека ADO/OLE DB (связывание и внедрение объектов). То, что вам нужно для использования ADO, возможно, уже существует на вашем компьютере: эти файлы распространяются Microsoft как часть Windows 98/2000. Если вы используете Windows 95 или NT, вам может потребоваться распространить или установить механизм ADO. Компакт-диск Delphi 5 содержит установочные файлы для компонентов доступа к данным MDAC-Microsoft. Вам следует убедиться, что вы используете последнюю версию MDAC, доступную на официальном сайте Microsoft. MDAC — это ключевая технология, обеспечивающая работу универсального доступа к данным. К ним относятся объекты данных ActiveX (ADO), OLE DB и Open Database Connectivity (ODBC).
Примечание. Для правильной установки на компьютер с Windows 95 MDAC требует установки DCOM95 (объектная модель распределенных компонентов). Для правильной регистрации компоненты, установленные MDAC, зависят от библиотек DLL, установленных DCOM95. Обратите внимание, что DCOM95 не требуется в NT4.0. В некоторых случаях DCOM не требуется устанавливать на компьютерах под управлением Windows. Но если он не установлен, DCOM98 следует установить перед установкой MDAC.
Нет необходимости слишком подробно обсуждать OLE DB и ADO, перейдем к более практическим вопросам.
ADO- объекты
Модель программирования ADO построена на основе нескольких объектов ADO, которые предоставляют несколько методов доступа к различным объектам данных. Эти объекты предоставляют функциональные возможности для подключения к источникам данных, запроса и обновления наборов записей, а также отчетов об ошибках. Delphi получает доступ к этим объектам через инкапсулированные компоненты через несколько компонентов VCL. Давайте посмотрим на объекты, которые работают с ADO:
Объект Connection , который подключается к источнику данных через строку подключения. В BDE/Delphi объект соединения представляет собой комбинацию компонентов базы данных и компонентов сеанса.
Объект Command (Команда) позволяет нам управлять источником данных. Он описывает команду (также называемую запросом или оператором), которая может обрабатывать добавление, удаление, запрос или обновление данных базы данных.
Объект Recordset (набор записей) является результатом выполнения команды запроса (Query). Вы можете думать о наборе записей как о компоненте таблицы Delphi (Table) или компоненте запроса (Query). Каждая строка, возвращаемая набором записей, содержит несколько объектов Field.
В модели ADO существуют еще несколько объектов: объекты полей, объекты параметров и объекты ошибок — мы вернемся к ним в следующих главах.
Раздел 4. Использование ADOExPRess для подключения к базе данных.
Прежде чем дать краткое объяснение каждому компоненту коллекции ADOExpress, давайте сначала разберемся, как подключиться к базе данных Access. Конечно, конечно мы подключимся к нашей примерной базе данных — AboutDelphi.mdb (добавление переводчика: база данных, созданная в предыдущей главе).
Delphi(5) в основном поддерживает ADO через компонент ADOExpress на странице ADO панели компонентов. В этом курсе будут использоваться несколько других компонентов, обеспечивающих работу с базами данных. На данный момент мы сосредоточимся на минимальном наборе компонентов, необходимых для доступа к базе данных Access с помощью ADO.
Запустите Delphi и создайте новое приложение с пустой формой.
Чтобы получить доступ к данным базы данных Access через ADO и Delphi, вы должны добавить в свой проект как минимум три компонента, поддерживающих данные. Первый — это DBGrid страницы компонента DataControls, используемый для просмотра записей, полученных из таблицы или с помощью запроса. Второй — DataSource (страница доступа к данным DataAccess), который используется для соединения набора данных и компонента DBGrid на форме, тем самым реализуя реализацию, навигацию и редактирование потенциальных данных набора данных. Наконец, есть ADOTable (страница ADO), на которой изображена таблица, полученная из базы данных ADO. Перетащите их все на форму (Form), и имена компонентов примут значения по умолчанию. Форма теперь должна выглядеть так:
Если вы запустите программу сейчас, никакие данные не будут отображаться в Grid — конечно, потому что мы фактически не подключены к базе данных. Обратите внимание еще на один момент: видна только сетка, остальные два компонента невидимы для элементов управления.
Связь между компонентами
Для того, чтобы отобразить данные из базы данных, нам необходимо соединить три компонента вместе. Выполните следующие настройки в Инспекторе объектов:
DBGrid1.Источник Данных = Источник Данных1;
DataSource1.DataSet = ADOTable1;
Теперь мы переходим к самой сложной части: чтобы получить данные из базы данных, нам нужно создать ConnectionString. Эта строка указывает физическое место хранения базы данных и способ доступа к ней. Если вы дважды щелкните кнопку с многоточием свойства ConnectionString компонента AdoTable, вы увидите следующее диалоговое окно:
Data Source=C:/!gajba/About/aboutdelphi.mdb;
Persist Security Info=False;
Чтобы завершить проектирование, мы должны установить имя таблицы, к которой будет осуществляться доступ через компонент ADOTable — опять же с помощью инспектора объектов. ADOTable1.TableName = приложения. Если вы хотите видеть данные базы данных во время разработки, используйте свойство Active ADOTable — установите для него значение True. ха! Если вы выполнили все описанные выше шаги, теперь вы увидите, что в таблице «Приложения» есть только одна запись (строка). При запуске приложения вы даже можете изменить данные в базе данных. Конечно, большего сделать вы не сможете — это самый простой пример ADO, который я могу придумать. Теперь этот раздел можно завершить. В следующей главе мы обсудим все компоненты ADO, предоставляемые Delphi, и то, как они взаимодействуют с остальными компонентами, поддерживающими данные, для создания более мощного приложения базы данных Delphi. 22 декабря 2002 20:14