Введение в базы данных

Объект Transaction

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

Транзакции бывают локальными и распределенными. Локальные транзакции — это транзакции, выполняемые в контексте единого провайдера данных. Провайдер, поддерживающий локальные транзакции, должен реализовать интерфейс ITransactionLocal. Транзакция начинается с вызова метода StartTransaction, завершается с помощью метода Commit или откатывается с помощью Abort. Способность провайдера поддерживать транзакции может быть определена с помощью интерфейса IDBProperties.

Распределенные транзакции выполняются в контексте нескольких провайдеров данных. Для выполнения таких транзакций потребители используют интерфейс TtransactionJoin, доступный только если провайдер данных поддерживает распределенные транзакции. В этом случае потребитель вызывает метод JoinTransaction для регистрации сессии в распределенной транзакции. После присоединения к распределенной транзакции потребитель использует интерфейс ITransaction для завершения или отката транзакции.

В начало В начало

Объект Error

В дополнение к кодам возврата и информации о состоянии, свидетельствующей об успехе или неуспехе вызова любого из методов OLE DB, OLE DB-провайдеры могут предоставлять расширенную информацию об ошибках с помощью объекта Error. Потребители данных могут использовать интерфейс ISupportErrorInfo для того, чтобы определить, может ли данный объект возвратить объект Error, и если да, то каковы эти интерфейсы.

Подробности об OLE DB можно найти на Web-сайте компании Microsoft:

http://www.microsoft.com/data/oledb

или в следующих группах новостей на http://msnews.microsoft.com:

microsoft.public.oledb

microsoft.public.oledb.sdk

Выше мы уже перечислили ряд стандартных OLE DB-провайдеров, доступных в составе Microsoft Data Access Components и некоторых других продуктов Microsoft. Далее мы выясним, где можно найти OLE DB-провайдеры сторонних производителей и даже инструменты для создания собственных провайдеров.

В начало В начало

Поставщики OLE DB-провайдеров

Многие производители СУБД поставляют OLE DB-провайдеры в составе своих продуктов. В табл. 2 приведен список подобных производителей серверных СУБД.

Таблица 2

Производитель OLE DB-провайдеры URL
Computer Associates, Inc. Jasmine OLE DB Provider http://www.cai.com/
Informix Software, Inc. INFORMIX OLE DB Provider http://www.informix.com
Object Design, Inc. ObjectStore OLE DB Provider http://www.odi.com
SAS Institute SAS/MDDB http://www.sas.com
Sequiter Software, Inc. CodeBase OLE DB Provider http://www.sequiter.com

Помимо этого существуют компании, производящие OLE DB-провайдеры для различных источников данных. Они перечислены в табл. 3.

Наиболее актуальную информацию об OLE DB-провайдерах можно найти на сайте, посвященном Microsoft Universal Data Access:

http://www.microsoft.com/data/partners/products.htm

В случае когда вам необходимо создать собственный OLE DB-провайдер, есть несколько инструментов, доступных на рынке. Они показаны в табл. 4.

Таблица 4

Vendor Tool URL
Simba Technologies SimbaProviderSimbaProvider for OLAP SDK http://www.simba.com/
Automation Technology Company OpenAccess OLE DB SDK http://www.odbcsdk.com/
Geppetto's Workshop AntMDX http://www.geppetto.com/
X-Tension MDX Parser for OLE DB for OLAP http://www.x-tension.com/
IBM Client Access for Windows 9x/NT SDK http://www.as400.ibm.com/
Binh Ly OLE DB Provider Toolkit for Delphi 5 http://www.techvanguards.com

Рассмотрев OLE DB, мы можем перейти к обсуждению ADO и его взаимодействию с OLE DB.

В начало В начало

Microsoft ActiveX Data Objects

ADO, как мы знаем, представляет собой высокоуровневый программный интерфейс для доступа к OLE DB-интерфейсам. Он позволяет манипулировать данными с помощью любых OLE DB-провайдеров, как входящих в состав Microsoft Data Access Components некоторых других продуктов Microsoft, так и произведенных сторонними производителями. ADO содержит набор объектов, используемых для соединения с источником данных, для чтения, добавления, удаления и модификации данных.

Объект ADO Connection применяется для установки связи с источником данных. Он представляет единственную сессию. Этот объект позволяет изменить параметры соединения с базой данных, а также начать или завершить транзакцию. Используя объект Connection, мы можем выполнять команды (например, SQL-запросы) с помощью метода Execute. Если команда возвращает набор данных, автоматически создается объект Recordset, который возвращается в результате выполнения этого метода.

Объект Error используется для получения сведений об ошибках, возникающих в процессе выполнения.

Объект Command представляет собой команду, которую можно выполнить в источнике данных. Команда может содержать SQL-предложение или вызов хранимой процедуры. В последнем случае для определения параметров процедуры может быть использована коллекция Parameters объекта Command.

Объект Recordset — это набор записей, полученных из источника данных, и может быть использован для добавления, удаления, изменения, просмотра записей. Данный объект может быть открыт непосредственно или создан с помощью объектов Connection или Command.

Объект Field — это колонка в наборе данных, представленных объектом Recordset. Он может быть использован для получения значений конкретного поля, его модификации, извлечения метаданных, таких как имя колонки и тип данных.

На рис. 4 изображена объектная модель ADO.

Библиотека ADO 2.5, являющаяся составной частью операционной системы Windows 2000, содержит два новых объекта — Record и Stream.

Объект Record представляет одну запись внутри объекта Recordset и может быть использован для работы с гетерогенными и иерархическими данными.

Объект Stream представляет двоичные данные, связанные с объектом Record. Например, если объект Record представляет собой файл, то его объект Stream должен содержать данные внутри этого файла.

В начало В начало

OLE DB и ADO

Ранее в этой статье мы уже рассмотрели некоторые основные объекты OLE DB. Теперь настало время показать, как объекты ADO используют OLD DB:

  • объект ADO Connection использует объекты OLE DB DataSource и Session. Транзакции поддерживаются с помощью интерфейсов ITransaction и ITransactionLocal, метод Execute использует метод Execute интерфейса ICommand или метод OpenRowset интерфейса IOpenRowset. Большинство свойств доступно с помощью IDBProperties. Объект Error поддерживается с помощью интерфейса IErrorRecords;

  • объект ADO Command использует объект OLE DB Command и интерфейс ICommand. Например, его метод Execute вызывает непосредственно одноименный метод объекта OLE DB Command, его свойство CommandText доступно с помощью методов GetCommandText и SetCommandText интерфейса ICommandText. Коллекция Parameters объекта ADO Command доступна с помощью интерфейса ICommandWithParameters;

  • объект ADO Recordset использует объект OLE DB Rowset. Он применяет интерфейсы IRowset, IRowsetLocate и IRowsetInfo для реализации большинства методов, свойств и коллекций. Объект Field использует интерфейс IColumnsInfo.

Подробную информацию можно найти в Microsoft OLE DB Programmer’s Reference, являющемся составной частью Platform SDK.

В начало В начало

Расширения ADO

Начиная с версии 2.1, ADO содержит несколько расширений, на которых мы кратко остановимся ниже.

В начало В начало

ADO Extensions for Data Definition and Security (ADOX)

ADO Extensions for Data Definition and Security (ADOX) представляет собой набор объектов, позволяющих манипулировать метаданными в базах данных и управлять объектами, отвечающими за безопасность. Эти объекты кратко описаны в табл. 5.

Иерархия объектов ADOX показана на рис. 5. Из диаграмм на рисунке следует, что объекты Table, Column и Index имеют стандартную коллекцию Properties. Объекты ADOX представляют большинство основных объектов в типичных реляционных СУБД, и их свойства и методы могут быть использованы для создания этих объектов и манипуляции ими.

В начало В начало

ADO Multi-Dimensional Extensions (ADOMD)

ADO Multi-Dimensional Extensions (ADOMD) — это набор объектов, позволяющих использовать многомерные данные в ADO-приложениях. Такие данные управляются OLAP-серверами (OLAP, Online Analytical Processing), такими как Microsoft OLAP Server, входящий в комплект поставки Microsoft SQL Server 7.0 (или Analytical Services в Microsoft SQL Server 2000). OLAP-серверы широко применяются в системах принятия решений, где требуется статистический анализ больших объемов данных.

Объекты ADOMD кратко описаны в табл. 6.

Иерархия объектов ADOMD показана на рис. 6.

Jet and Replication Objects (JRO)

Jet and Replication Objects — набор объектов, специально предназначенных для использования совместно с Microsoft Jet OLE DB Provider. Его свойства позволяют создавать, модифицировать и синхронизировать реплики. Реплика — это копия базы данных, изменения в которой синхронизируются с главной базой данных (master database).

Объект Replica используется для создания новых реплик, модификации свойств существующих реплик и синхронизации изменений с другими репликами.

Объект JetEngine применяется для сжатия баз данных и обновления данных из кэша памяти.

Иерархия объектов JRO показана на рис. 7.

Подробности об ADO можно найти на Web-сайте компании Microsoft:

http://www.microsoft.com/data/ado

или в следующих группах новостей на http://msnews.microsoft.com:

microsoft.public.data.ado

microsoft.public.data.ado.rds

В начало В начало

Где найти MDAC

Microsoft Data Access Components можно найти на Web-сайте компании Microsoft: http://www.microsoft.com/data, а также в составе Delphi 5 и C++Builder 5 Enterprise, Microsoft Office 2000, Internet Explorer 5.0. Рекомендуется периодически обновлять версию MDAC, получая ее с сайта компании Microsoft, — это гарантирует наличие последних версий всех компонентов MDAC.

ADO 2.5 является частью Windows 2000 и не требует отдельной установки. MDAC Software Development Kit, который может потребоваться разработчикам ADO-приложений, входит в состав Microsoft Platform SDK. Он может быть заказан на CD-ROM или получен на Web-сайте компании Microsoft.

В начало В начало

Заключение

В данной статье мы рассмотрели основные части Microsoft Data Access Components (MDAC) — набора технологий, реализующих универсальный механизм доступа к данным Microsoft. Мы узнали, что универсальный механизм доступа к данным (Universal Data Access) представляет собой стратегию предоставления доступа к любому типу информации предприятия, включая реляционные и нереляционные данные.

Далее мы рассмотрели основные компоненты архитектуры универсального механизма доступа к данным Microsoft. Мы узнали, что:

  • OLE DB — это низкоуровневый интерфейс для доступа к данным. ADO использует OLE DB, но можно использовать OLE DB и напрямую, минуя ADO;

  • Microsoft ActiveX Data Objects (ADO) — это программный интерфейс для доступа к данным из приложений. С точки зрения программирования ADO и его расширения представляют собой упрощенный высокоуровневый объектно-ориентированный интерфейс к OLE DB.

Кроме того, мы рассмотрели основные объекты OLE DB и ADO и выяснили, как они взаимодействуют друг с другом.

Перечислив стандартные OLE DB-провайдеры, доступные в составе Microsoft Data Access Components и некоторых других продуктов Microsoft, мы обсудили, какие OLE DB-провайдеры сторонних производителей доступны в настоящее время и какие в данный момент имеются инструменты для производства собственных провайдеров.

Мы также рассмотрели расширения ADO, доступные начиная с версии 2.1:

  • ADO Extensions for Data Definition and Security (ADOX) — это набор объектов, позволяющих манипулировать метаданными в базах данных и управлять объектами, отвечающими за безопасность данных;

  • ADO Multi-Dimensional Extensions (ADOMD) — это набор объектов, позволяющих использовать в ADO-приложениях многомерные данные, управляемые OLAP-серверами;

  • Jet and Replication Objects — это набор объектов для управления репликациями, специально предназначенных для использования совместно с Microsoft Jet OLE DB Provider.

Несколько слов хотелось бы сказать об универсальных механизмах доступа к данным в целом. Как мы видим, механизм, основанный на применении OLE DB и ADO, имеет все основания претендовать на роль ключевой технологии доступа к данным для Windows-приложений, ибо:

  • он входит в состав не только многих популярных продуктов Microsoft, но и семейства операционных систем Windows 2000, что позволяет безболезненно решить ряд проблем, связанных с поставкой таких приложений и их сопровождением;

  • OLE DB-провайдеры выпускаются не только автором технологии OLE DB, но и многими сторонними производителями (вспомним, например, что ситуация с BDE-драйверами как раз обратная);

  • доступ к нереляционным данным, предусмотренный данной технологией, является весьма привлекательной ее особенностью, и на данный момент другие универсальные механизмы доступа к данным не могут предложить ничего подобного;

  • данная технология базируется на использовании COM-интерфейсов, поэтому она поддерживается всеми средствами разработки, позволяющими создание COM-клиентов с их помощью. Кроме того, многие средства разработки, даже не принадлежащие Microsoft, поддерживают ADO на уровне собственных классов и компонентов (например, Delphi 5 и C++Builder 5), несмотря на наличие других встроенных механизмов доступа к данным.

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

Этой статьей мы закончили обзор универсальных механизмов доступа к данным. Следующая статья данного цикла будет посвящена языку SQL, широко применяемому ныне для манипуляции данными.

Предыдущая страница

КомпьютерПресс 8'2000


Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует