Модель объектов DAO

Модель объектов доступа к данным является объекто-ориентированым интерфейсом программирования ядра базы данных Jet. Это иерархия классов, которая соответствует логической структуре реляционной базы данных.

Для единообразия и простоты использования эти классы, а также объекты, которые создаются на базе этих классов, имеют такие же свойства как и другие классы и объекты в VB и VBA

В VB реализована иерархия объектов. Это значит, что одни объекты могут содержать другие объекты, которые в свою очередь могут включать и третьи. Это включение обеспечивается особым типом объекта, который называется коллекция. Единственным назначением объекта коллекция - является содержание в себе других объектов. Коллекция включает в себя объекты одного типа.

Замечание: Элементы в иерархии DAO на самом деле являются классами, а не объектами. Это только "черновики" (прототипы) объектов, создаваемых при разработке приложения. В объектно-ориентированном программировании ООП класс похож на тип данных в том смысле, что описывает тип объекта, на который производится ссылка.

Например,

Dim MyWs As Workspace

указывает, что MyWs - это переменная, которая используется в качестве объекта класса Workspace. Поэтому нужно понимать, что объект Database - это объект класса Database.

На вершине иерархии коллекций находится само ядро базы данных Microsoft Jet - DBEngine. Это единственный объект, который не является коллекцией. Объект DBEngine владеет коллекцией Workspaces (название коллекции всегда является множественным числом от названия объектов, которые в ней содержатся), которая содержит один или несколько объектов Workspace (рабочая область). Каждый объект Workspace владеет коллекцией Databases, в которой содержится один или несколько объектов Database. Объект Database содержит коллектцию TableDefs.

Обратиться к первому элементу коллекции TableDefs можно:

MyDatabase.TableDefs(0)

Объекты в иерархии обпределяются по полному "пути" через вложенные коллекции, которым они принадлежат.

DBEngine.Workspaces(0).Databases(0).TableDefs(0).Fields("Заказчик") - пример использования для ссылки на объект коллекции не индекса а строки, соответствующей свойству Name объекта коллекции Field

Также для обращения к свойству объекта можно использовать восклицательный знак.

MyTableDef.Fields("Заказчик")

MyTableDef.Fields!Заказчик

Две приведенные выше строки равнозначны.

Коллекции по умолчанию. У многих объектов доступа к данным есть коллекции по умолчанию. Это позволяет упростить программу и сократить запись некоторых операторов. Например, коллекцией по умолчанию объекта Recordset является коллекция Fields. Чтобы получить значение объекта Field с названием Заказчик, можно написать:

Cust = MyRecordset!Заказчик

или Cust = MyRecordset.Fields!Заказчик

или Cust = MyRecordset.Fields("Заказчик")


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: