Как видно из рисунка, DAO включает две объектные модели. Тип используемой модели (рис. 35, 36) зависит от того, используется ли ODBCDirect.
Операции, выполняемые с помощью DAO, можно разделить на три категории:
запросы – операции импорта и экспорта данных, включающие выборку, добавление, редактирование и удаление записей;
операции изменения структуры БД – операции создания, изменения и удаления БД, спецификаций таблиц и запросов, полей, индексов и связей (на выполнение этих операций могут существовать ограничения в зависимовти от типа используемой внешней базы);
операции, обеспечивающие защиту данных в многопользовательской среде, – создание сеансов под различными пользовательскими именами, установка и идентификация пользователей и групп.
Объекты, включенные в иерархическую объектную модель DAO, используются для реализации этих операций. В модель включены два типа объектов: постоянные и временные. Постоянные объекты могут быть сохранены в MDB-файле или в системном файле БД. Временные объекты не сохраняются в файлах, любые свойства временного объекты являются временными.
При доступе в приложении к объекту DAO он либо создается, либо ссылка на него задается через семейство, содержащее его. На временный объект можно ссылаться через семейство только после того, как он создан. Постоянные объекты можно создавать подобно временным. После создания постоянного объекта он в большинстве случаев не сразу становится постоянным, а только после добавления его к своему семейству. Объекты, не являющиеся постоянными, могут использоваться для доступа к постоянным объектам, представляющим сохраненные базы данных, таблицы, запросы и зависимости.
Независимо от того, какая модель используется, перед началом работы с DAO необходимо создать объект Workspace (рабочая область или сеанс работы с БД), в котором будут производиться все операции с БД.
11.3.2. Создание рабочей области и открытие источника данных
При доступе к данным с помощью ядра Microsoft Jet используется рабочая область Microsoft Jet, для создания которой используется зарезервированная константа dbUseJet. В случае доступа к источнику данным ODBC используется рабочая область ODBCDirect, для создания которой используется зарезервированная константа dbUseODBC.
Метод CreateWorkspace определяет название рабочей области (первый параметр), второй и третий параметры задают имя и пароль, необходимые для доступа к данным, последний параметр определяет тип создаваемой рабочей области. В качестве результата возвращается ссылка на рабочую область.
Следующий программный код создает рабочую область Microsoft Jet:
Dim wsJet As Workspace Set wsJet = DBEngine.CreateWorkspace(“MyWorkspace”, _ “Admin”, “”, dbUseJet)
А приведенные ниже операторы создают рабочую область ODBCDirect:
Dim wsODBC As Workspace Set wsODBC = CreateWorkspace(“MyWorkspace”, _ “Admin”, “”, dbUseODBC)
(объект DBEngine используется по умолчанию).
После создания рабочей области можно открыть источник данных (т.е. соединиться с источником данных). Порядок открытия источника данных зависит от типа рабочей области.
Если создана рабочая область Microsoft Jet, то для соединения с источником используется метод OpenDatabase, в качестве параметра которого указывается полный путь к базе данных:
Dim dbObj As Database Set dbObj = wsJet.OpenDatabase(“C:\MyDataBases\DAO.mdb”)
При использовании рабочей области ODBCDirect для открытия источника данных применяется метод OpenConnection, который имеет один обязательный аргумент – строку, задающую имя источника данных. В начале этой строки необходимо указать тип источника данных (ODBC), вся строка является значением свойства Name объекта Connection. Перед использованием ичточника необходимо убедиться в том, что в Диспетчере драйверов ODBC описан соответствующий источник данных (в случае необходимости нужно создать новый источник данных). В следующем примере устанавливается соединение с источником данных, имеющим имя «Publishers»:
Dim dsObj As Connection Set dsObj = wsODBC.OpenConnection(“ODBC;DSN=Publishers”)
Регистрация источника данных ODBC осуществляется с помощью Диспетчера драйверов ODBC, доступ к которому можно получить через Панель управления Windows. Источник данных ODBC можно зарегистрировать программным путем, используя ODBC API.
После соединения с источником данных можно производить операции по обработке данных.