Создание и использование рабочей области

Обе иерархии объектов DАО: для рабочей области Jet и для рабочей области ODBCDirect — начинаются с объекта DBEngine. Этот объект содержит свойства и методы, позволяющие управлять рабочими областями. Свойство DefaultType объекта DBEngine позволяет определять или устанавливать тип рабочей области, создаваемой по умолчанию.

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

Чтобы создать новую рабочую область ядра Jet или рабочую область ODBCDirect, используют метод CreateWorkspace (программа 16.2) объекта DBEngine с соответствующим параметром. Метод CreateWorkspace возвращает ссылку на объект типа workspace и имеет следующие параметры (табл. 16.2):

Workspace CreateWorkspace(<имя>, <пользователь>, <пароль>, <тип>)

Таблица 16.2. Параметры метода CreateWorkspace

Параметр

Тип

Описание

<пользователь> String Имя пользователя, который будет владельцем создаваемой рабочей области. Определяет значение свойства UserName объекта Workspace
<пароль> String Пароль пользователя. Он необходим для создания рабочей области. Пароль может включать до 14 символов. Это могут быть любые символы, кроме символа ASCII с кодом 0 (Null). Определяет значение свойства Password объекта Workspace
<тип> <константа> Необязательный параметр. Задает тип создаваемой рабочей области. В качестве значения можно использовать константу dbUseJet для создания рабочей области ядра Jet или константу dbUseODBC для создания рабочей области ODBCDirect. По умолчанию создается рабочая область того типа, который задан значением свойства DefaultType объекта DBEngine

<имя>


String

Уникальное имя создаваемой рабочей области. Определяет значение свойства Name объекта Workspace

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

Программа 16.1. Использование рабочей области Jet, открытой по умолчанию

Dim ws As Workspace

Dim db As Database

Set ws = DBEngine.Workspaces(0)

' Выбрали рабочую область

' Открываем базу данных:

Set db = ws.OpenDatabase ("DominationGameServer.mdb")

' Код использования базы данных ...

db.Close ' Закрыли базу данных

Set db = Nothing

' Очистили объектную переменную

' (!) Плохой код:

' рабочая область, открытая по умолчанию, будет закрыта

' ws.Close

' Set ws = Nothing

Программа 16.2. Создание рабочей области Jet

Dim ws As Workspace

Dim db As Database

' Создаем рабочую область:

Set ws = CreateWorkspace("", "Флинт", "пиастры", dbUseJet)

' Открываем базу данных:

Set db = ws.OpenDatabase("DominationGameServer.mdb")

' Код использования базы данных ...

db.Close ' Закрыли базу данных

ws. Close "' : ' ' Закрыли рабочую область

Set db = Nothing " ' Очищаем объектные

Set ws = Nothing ' переменные