Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
к экзамену.doc
Скачиваний:
5
Добавлен:
27.10.2018
Размер:
141.82 Кб
Скачать

16.Объектая модель dao. Объекты dbEngine, Workspace, Database, TableDef, QueryDef, RecordSet, Container, Relation, Document, Field, Index, Error, Parametr. Пример (фрагмент).

Объект DBEngine является объектом самого верхнего уровня в модели объектов доступа к данным (DAO).

Объект DBEngine содержит в себе и управляет всеми другими объектами в иерархии объектов доступа к данным (DAO). Создание дополнительных объектов DBEngine невозможно, а сам объект DBEngine не является компонентом ни одного семейства.

Для баз данных или подключений любого типа данный объект позволяет:

Использовать свойство Version для получения номера версии объектов доступа к данным (DAO).

Использовать свойство LoginTimeout для получения или установки интервала ожидания для подключения ODBC, а также использовать метод RegisterDatabase для передачи сведений ODBC ядру базы данных Microsoft Jet. Эти возможности используются одинаково, вне зависимости от того, выполняется ли подключение к источнику данных ODBC через ядро Microsoft Jet или в рабочей области ODBCDirect.

Использовать свойство DefaultType, чтобы указать тип подключения, используемый по умолчанию создаваемым объектом Workspace, т.е. либо рабочую область Microsoft Jet, либо ODBCDirect.

Использовать свойства DefaultPassword и DefaultUser, чтобы указать используемые по умолчанию имя пользователя и пароль для объекта Workspace.

Использовать метод CreateWorkspace для создания нового объекта Workspace. При этом необязательные аргументы позволяют указать параметры, имеющие приоритет над значениями свойств DefaultType, DefaultPassword и DefaultUser.

Объект Error содержит подробные сведения об ошибках доступа к данным, каждая из которых относится к определенной операции с объектом доступа к данным (DAO).

Просмотр сведений о конкретных ошибках в семействе Errors позволяет более точно определить в программах обработки ошибок причину и источник каждой ошибки и принять соответствующие меры для исправления ситуации. Как в рабочей области Microsoft Jet, так и в рабочей области ODBCDirect пользователь имеет возможность читать значения свойств Error, чтобы получить подробные сведения о каждой ошибке, включая следующие:

Свойство Description содержит текст сообщения об ошибке, которое будет выведено на экран, если ошибка не перехватывается.

Свойство Number содержит значение типа Long, представляющее код ошибки.

Свойство Source указывает объект, в котором возникла ошибка. Это особенно полезно, если в семействе Errors появляется несколько объектов Error в результате обращения к источнику данных ODBC.

Свойства HelpFile и HelpContext указывают файл справочной системы Microsoft Windows и раздел справки (если они существуют), соответствующие ошибке.

Объект Workspace определяет именованный сеанс работы пользователя. Этот объект содержит открытые базы данных и предоставляет механизмы для одновременного выполнения транзакций, а также, в рабочей области Microsoft Jet, поддерживает работу защищенной рабочей группы. Этот объект также определяет, осуществляется ли доступ к внешним данным через ядро базы данных Microsoft Jet или через механизм ODBCDirect.

Замечания

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

Объект Relation представляет связь между полями таблиц или запросов (только в базах данных Microsoft Jet).

Замечания

Свойства объекта Relation позволяют выполнить следующие действия:

Установить режим сохранения целостности данных для связи между полями в основных таблицах (однако, этого нельзя сделать для связи с участием запроса или присоединенной таблицы).

Установить связи без поддержания целостности данных между полями любых таблиц или запросов — принадлежащих базе данных или присоединенных.

Ссылаться при помощи свойства Name на связь между полями адресуемой главной таблицы и адресующей внешней таблицы.

При помощи свойства Attributes определить тип связи между полями таблиц (отношение "один-к-одному" или отношение "один-ко-многим" ), а также режим поддержания целостности данных.

Указать с помощью свойства Attributes, может ли ядро Microsoft Jet выполнять операции каскадного обновления и каскадного удаления над главными и внешними связанными таблицами.

Указать с помощью свойства Attributes, принадлежит ли связь между таблицами к типу левого объединения или правого объединения.

Использовать значения свойства Name всех объектов Field из семейства Fields объекта Relation для задания или возвращения имен полей ключа адресуемой таблицы, а также значения свойства ForeignName объектов Field для задания или возвращения имен полей внешнего ключа адресующей таблицы.

Объект Index (индекс) описывает отношения упорядочивания и однозначности значений, с помощью которых обеспечивается эффективный доступ к записям в таблицах. При работе с внешними базами данных объекты Index содержат описания индексов, определенных во внешних таблицах (только в рабочей области Microsoft Jet).

Объект Index позволяет:

Определить с помощью свойства Required, обязательно ли объекты Field индекса должны содержать непустые значения (не Null), после чего вызвать метод IgnoreNulls, а с помощью свойства Null определить, имеются ли в индексе записи с пустыми значениями.

С помощью свойств Primary и Unique определить отношения упорядочивания и однозначности в объекте Index.

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

Создание нового объекта Index

Вызовите метод CreateIndex для объекта TableDef.

Вызовите метод CreateField для объекта Index и создайте объект Field для каждого поля (столбца), включаемого в объект Index.

Задайте свойства объекта Index.

Добавьте объекты Field в семейство Fields.

Добавьте объект Index в семейство Indexes.

Объект Document содержит сведения о конкретном экземпляре объекта. Этот объект может быть базой данных, сохраненной таблицей, запросом или связью (только в базах данных Microsoft Jet).

Объект Document позволяет:

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

Определить с помощью свойства Container имя объекта Container, содержащего данный объект Document.

Определить или установить разрешения на доступ к объекту для пользователя или группы, с помощью свойств UserName или Permissions. Для указания значений данных свойств необходимо иметь разрешение на запись для объекта Document, а задаваемое значение свойства UserName должно являться именем существующего объекта User или Group.

Объект Document представляет существующий объект базы данных, поэтому невозможно создать новый объект Document или удалить существующие объекты. При ссылках на объект Document используют его порядковый номер в семействе или значение свойства Name (имя):

Documents(0)

Documents("имя")

Documents![имя]

В объектах Container (контейнер) группируются однотипные объекты Document.

Замечания

Некоторые из этих объектов Container определены в ядре базы данных Microsoft Jet, тогда как другие определяются в других приложениях. В следующем списке приведен список имен всех объектов Container, определенных в ядре Microsoft Jet, и описание содержащейся в них информации:

Databases - Сохраненные базы данных.

Tables - Сохраненные таблицы или запросы.

Relations - Сохраненные связи.

Объекты Container являются встроенными, поэтому нельзя создать новые объекты Container или удалить существующие объекты.

При ссылках на объект Container используют его порядковый номер в семействе или значение свойства Name (имя) в одной из следующих синтаксических конструкций:

Containers(0)

Containers("имя")

Containers![имя]

Объект Database представляет открытую базу данных.

Замечания

Работа с открытой базой данных ведется с помощью объекта Database и его методов и свойств. Для баз данных любого типа пользователь имеет следующие возможности:

Использовать метод Execute для запуска запроса на изменение.

С помощью свойства Connect установить подключение к источнику данных ODBC.

С помощью свойства QueryTimeout ограничить время ожидания выполнения запроса к источнику данных ODBC.

Использовать свойство RecordsAffected для определения количества записей, измененных в запросе на изменение.

Использовать метод OpenRecordset для выполнения запроса на выборку и создания объекта Recordset.

С помощью свойства Version определить версию ядра базы данных, в которой была создана база данных.

При вызове метода CreateDatabase создается постоянный объект Database, который автоматически добавляется в семейство Databases, что приводит к его сохранению на диске.

При использовании метода OpenDatabase нет необходимости указывать объект DBEngine.

Открытие базы данных, содержащей присоединенные таблицы, не приводит к автоматическому установлению связей с указанными внешними файлами или источниками данных ODBC, подключенными к ядру Microsoft Jet. В этом случае требуется либо указать ссылку на соответствующие таблице объекты TableDef или Field, либо открыть для таблицы объект Recordset. Если связи установить не удается, возникает перехватываемая ошибка. К возникновению перехватываемой ошибки приводит также отсутствие необходимых разрешений на доступ к базе данных или попытка установить связь с базой данных, открытой другим пользователем для монопольного доступа.