Типы объектов DAO
Объекты DAO делятся на постоянные и непостоянные.
Постоянные объекты сохраняются в файлах.mdb (базы данных) или.mda (информация о группах и пользователях). К постоянным объектам относятся Database, TableDef, Index, QueryDef, Parameter, Relation, User, Group, Field для TableDef и QueryDef, Property постоянного объекта.
Непостоянные объекты уничтожаются при выходе из процедуры, в которой они созданы. К непостоянным объектам относятся все семейства, Property непостоянного объекта, DBEngine, Error, Container, Document, RecordSet и Field для RecordSet.
Для того чтобы обратиться к существующему постоянному объекту, его нужно открыть методом Open. В иных случаях необходимо создать новый объект
Создание новых объектов
Создание нового объекта осуществляется в 3 этапа.
- Создание объекта методом Create.
- Присвоение свойств.
- Добавление объекта к семейству.
Пример
Dim db As Database, Список As TableDef
Dim Профессия As Field
Set db = DBEngine.WorkSpaces(0).Databases(0)
Set Список = db.CreateTableDef ("Список")
Set Профессия = Список.CreateField ("Профессия", Db_Text)
Список.Fields.Append Профессия
Db.TableDefs.Append Список
|
|
В примере используются объектные переменные db, Список и Профессия. Первый оператор Set создает ссылку на текущую базу данных. Она имеет порядковый номер 0 и создается автоматически. Автоматически создается и текущий сеанс работы, также имеющий порядковый номер 0. Можно создать еще несколько сеансов работы и открыть в каждом из них БД. В интерактивном режиме можно открыть только одну БД.
Второй оператор Set с помощью метода CreateTableDef объекта Database создает таблицу и присваивает ей имя "Список". Переменная Список теперь содержит ссылку на эту таблицу.
Последний оператор Set с помощью метода CreateField объекта TableDef создает поле с именем "Профессия" (первый аргумент метода) текстового типа. Тип задан константой Db_Text во втором аргументе метода.
Следующая и предпоследняя инструкция - вызов метода Append семейства Fields. Метод добавляет (включает) поле Профессия в семейство полей (Fields) таблицы Список. Последняя инструкция рассматриваемого фрагмента программы добавляет с помощью метода Append новую таблицу в семейство TableDefs таблиц.
После выполнения всех инструкций в окне БД появляется таблица Список, имеющая единственное текстовое поле Профессия. Подобным образом можно создать таблицу с произвольным количеством полей различного типа. Можно создавать базы данных методом CreateDatabase, запросы методом CreateQueryDef. Если существует набор данных типа RecordSet, перед использованием его следует открыть с помощью метода OpenRecordset.
- DBEngine
- WorkSpace
- Database
- QueryDef
- TableDef
- Field
- Index
- Recordset
DBEngine является объектом самого высокого уровня в иерархии DAO и используется для представления самого ядра Jet базы данных. DBEngine содержит семейство WorkSpaces (WorkSpace - сеанс или рабочее пространство) и метод CreateWorkspace создания рабочего пространства, а также метод CompactDatabase для уплотнения базы данных.