Главная страница Visual 2000 · Общий список статей

Microsoft наращивает функциональность технологии ADO

Андрей Колесов

© 1999, Андрей Колесов
Авторский вариант. Статья была опубликована c незначительной литературной правкой в PC Week/RE № 28/99, с.27. PC Week/RE Online

До недавнего времени...
Новшества ADO 2.1


До недавнего времени...

До недавнего времени разработчики приложений для доступа к базам данных использовали две объектные технологии Microsoft: Data Access Objects (DAO) и Remote Data Objects (RDO). В них были реализованы два различных программных механизма, что было связано с необходимостью оптимизации решения двух отдельных задач: доступа к локальным и удаленным базам данных соответственно. Однако развитие вычислительных систем привело к необходимости создания единой технологии, которая обеспечила бы единый подход при работе с БД различных классов. Для решения этой проблемы Microsoft еще несколько лет назад предложила в качестве единого интерфейса для доступа к локальным и удаленными данным новую технологию ActiveX Data Objects (ADO) , которая является частью архитектуры Microsoft Universal Data Access (MUDA).

Основой MUDA является OLE DB — низкоуровневый программный COM-интерфейс доступа к данным, представляющий собой развитие идеологии ODBC. Однако, если ODBC предназначена для работы с реляционными базами данных (Access, DBF, SQL и др.), то OLE DB предлагает единообразный метод доступа к данным, хранящимся в разных источниках информации, в том числе и в нереляционных БД (например, в папках систем электронной почты или простых файлах), обеспечивая при этом поддержку работы с наборами данных и иерархическими наборами записей, подключенными непостоянно к сети. Поставщиком таких данных (OLE DB Provider) может быть любой источник (в том числе приложение), написанное в соответствии со спецификациями OLE DB. Так, доступ к базам данных ODBC выполняется с помощью OLE DB Provider for ODBC.

ADO представляет собой прикладной объектный интерфейс более высокого уровня, который упрощает доступ к средствам OLE DB разработчикам, использующим языки высокого уровня. В 1998 году Microsoft выпустила модернизированный вариант ADO 2.0, который был впервые включен в состав Visual Studio 6.0.

Таким образом сейчас в распоряжении разработчиков приложений имеются три различные технологии работы с базами данных: DAO, RDO и ADO. В плане дискуссии о выборе подходящего инструмента можно привести довольно много технических подробностей. Но ключевым здесь является совсем другой момент: Microsoft объявила, что будет усовершенствовать и обновлять только модель ADO, то есть DAO и RDO постепенно должны сойти со сцены. Таким образом проблема выбора сводится к другому вопросу: в какой момент нужно переходить на использование ADO?

Помня о классическом принципе программистов "не трогай то, что уже работает", ответ на данный вопрос представляется достаточно ясным: старые приложения пусть функционируют в прежнем варианте, а вот новые, наверное, уже пора ориентировать на применение ADO.

В случае модернизации старых приложений также может стать вопрос о переходе на ADO, но тут следует иметь в виду ряд моментов. Хотя ADO в целом покрывает функциональность DAO и RDO, она не является совместимой с ними на уровне языка программирования. Это означает, что модернизация уже существующих программ для использования ADO потребует как минимум преобразования кода приложения. В этой технологии реализована другая объектная модель: объектов стало меньше, но при этом их структура стала иерархической, увеличилось число свойств, методов, аргументов и событий.

Несмотря на прогресс в развитии ADO, ее широкому принятию на вооружение до настоящего времени во многом мешали несколько факторов: существование ряда функциональных ограничений, недостаточная производительность, а также "сырость" ее реализации (попросту говоря, наличие ошибок).

По своим возможностям ADO 2.0, которая входит в состав Visual Studio 6.0, уступает уже давно опробованной технологии DA0. Например, разработчики, использующие ядро Access/Jet 3.51, не имеют возможности создавать такие объекты баз данных, как таблицы и поля. Метод OpenSchema объекта Connection позволяет просматривать часть структуры базы данных, однако его нельзя применять для создания баз данных или изменения структуры уже существующих баз данных. ADO 2.0 также не разрешает просматривать ряд элементов базы данных Jet, которые относятся к категории объектов безопасности. Более того, вы не можете даже выполнять программным образом многие операции над ядром Jet.

В результате большинство экспертов при оценке версии ADO 2.0 выражали довольно единодушное мнение: разработчикам нужно осваивать эту технологию, но для реализации "боевых" приложений следует подождать до выхода ее следующей версии. Похоже, Microsoft прислушалась к этому мнению: в июне было объявлено о выпуске новой версии ADO 2.1, которая может помочь справиться со многими проблемами предыдущего варианта.

В начало статьи

Новшества ADO 2.1

Номер версии указывает на то, что мы имеем дело не с новым выпуском технологии ADO, а с расширенным вариантом ADO 2.0, содержащим большой набор новых функций и несколько усовершенствованных функций из предыдущих выпусков ADO.

Кроме модернизированного варианта основной библиотеки, в состав ADO 2.1 входит дополнительная библиотека ActiveX Data Objects Extensions for DDL and Security или просто ADOX, которая предоставляет разработчикам обширный набор инструментов для получения доступа к структуре, модели безопасности и процедурам, хранящимся в базе данных. В самом большом выигрыше окажутся программисты, использующие ядро Access/Jet, хотя ADOX также работает с драйверами SQL Server и ODBC OLE DB. Но следует иметь в виду, что Microsoft пока не обеспечивает поддержку ADOX со своими другими драйверами OLE DB.

Модернизированный вариант основной библиотеки также обладает рядом новых функций, в том числе улучшенным индексированным поиском, возможностями работы со связанными таблицами, конфигурированием иерархических данных. И наконец, ADO 2.1 имеет более хорошую документацию в дополнение к исправлению ошибок предыдущей версии.

Новая версия ADO 2.1 будет поставляться вместе с SQL Server 7.0 и Access 2000. Все библиотеки можно также загрузить как часть дистрибутива Microsoft Data Access Components (MDAC) по адресу www.microsoft.com/data/ado/.

В начало статьи