Borland Delphi и расширения ADO
Страница 2. Применение ADO Extension for DDL and Security


 

Применение ADO Extension for DDL and Security

Введение в ADOX

Прежде чем углубляться в детали объектов ADOX, поговорим о том, что такое метаданные. В общем случае метаданные представляют собой описания объектов базы данных (таблиц, полей, индексов, ключей, представлений, хранимых процедур и прочих объектов). В подавляющем большинстве современных СУБД метаданные определяются с помощью языка SQL (Structured Query Language). До появления ADOX единственным программным способом извлечения метаданных из источников данных с помощью ADO был метод OpenSchema объекта ADO Connection. Для создания новых объектов в базе данных применялся язык Data Definition Language (DDL) — подмножество языка SQL, а также объект ADO Command .

ADOX предоставляет более универсальный способ манипуляции метаданными, не требующий знания SQL для того, чтобы получить структуру базы данных или даже создать новые объекты. Обратите внимание на то, что ADOX работает далеко не со всеми базами данных — его функциональность ограничена Microsoft Access и Microsoft SQL Server, а также несколькими другими СУБД. Подробности о поддержке ADOX различными СУБД можно найти на Web-сервере корпорации Microsoft: https://www.microsoft.com/data.

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

Таблица 1

Объект Описание
Connection Применяется для установки соединения с базой данных
Catalog Представляет схему базы данных и обеспечивает доступ к коллекциям всех таблиц, процедур, пользователей и групп в базе данных
Table Обеспечивает доступ к таблице в базе данных и доступ к полям, индексам и ключам
Column Обеспечивает доступ к полю таблицы или полям, на основе которых создан индекс или ключ
Index Обеспечивает доступ к индексу в таблице. Содержит коллекцию объектов Column, представляющих поля, на которых основан индекс
Key Обеспечивает доступ к ключу в таблице. Содержит коллекцию объектов Column, представляющих поля, на которых основан ключ
View Обеспечивает доступ к представлению (виртуальной таблице, view)
Procedure Обеспечивает доступ к хранимой процедуре или запросу
User Обеспечивает доступ к пользователю базы данных (user account)
Group Обеспечивает доступ к группе пользователей базы данных

Иерархия объектов ADOX начинается с объекта Catalog. Этот объект содержит коллекции таблиц, представлений, процедур, пользователей и групп и может быть использован для открытия существующей базы данных (с помощью объекта ADO Connection ), а также для создания новой. В версии ADO 2.1 можно создавать только базы данных Jet (то есть Microsoft Access — файлы с расширением .mdb), но, возможно, в последующих версиях список таких баз данных будет расширен. Открыть же можно и базы данных других типов.

Имея объект Catalog, мы можем работать с таблицами, процедурами и представлениями. Например, просматривая коллекцию Tables, можно узнать, какие таблицы имеются в базе данных, а также получить более детальные сведения о таблицах, изучив коллекции Columns, Indexes и Keys объекта Table . Изучая свойства объектов базы данных,

можно получить сведения о метаданных и, в частности, сохранить их в отдельном файле или куда-либо перенести. Используя коллекции Users и Groups, мы можем манипулировать правилами доступа к данным, создавая отдельных пользователей или группы пользователей базы данных. Отметим, что база данных в этом случае должна быть защищенной (secured): в случае Microsoft Access нам следует включить ссылку на базу данных System.mdw, ответственную за хранение сведений о правилах доступа к данным, в содержимое строки, указывающей на источник данных (connection string ).

Еще одна интересная особенность ADOX заключается в том, что с помощью этого расширения можно создавать базы данных и объекты внутри них «из ничего». Например, можно создавать базы данных Access, добавлять таблицы, поля, записи, индексы, ключи, а затем добавлять в созданную таким образом базу данных и сами данные (вручную или с помощью кода). Это бывает полезно в тех ситуациях, когда нужно некоторым образом организовать «сырые» данные. В общем случае для создания новой базы данных следует создать объект Catalog и применить метод Add коллекций Tables, Columns, Keys и Indexes для добавления в него объектов базы данных.

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

 
« Предыдущая статья   Следующая статья »