Visual Basic 6. Руководство разработчика

       

Объект TableDef: определения таблиц


Объект TableDef задает определение таблиц в объекте Database. Все объекты TableDef формируют семейство. Число таблиц находится в свойстве TableDefs. Count.

Каждая таблица в базе данных задается объектом

TableDef. Перечислим его наиболее важные свойства.

•  Count возвращает число строк в таблице.

•  Fields - семейство объектов Field. Каждый объект Field задает поле в таблице.

•  Indexes — семейство объектов Index. Каждый объект Index задает индекс таблицы.

Итак, объявим и откроем объект Database с помощью следующих команд.

Dim DB As Database

Set DB = OpenDatabase(dbName)

Для доступа к определениям таблиц базы данных используйте выражение DB.TableDefs, являющееся семейством объектов: по одному для каждой таблицы. С помощью элементов этого семейства можно обращаться к свойствам таблиц в базе данных. Чтобы реализовать обращение к каждой таблице самым простым способом, нужно объявить переменную TableDef

Dim tbl As TableDef

а затем просмотреть каждый элемент семейства

DB.TableDefs с помощью цикла For Each... Next.



For Each tbi In DB.TableDefs

Debug.Print tbl.Name

Next

Этот цикл отображает имена таблиц. В дополнение к таблицам данных базы данных Access содержат несколько системных таблиц. Имена этих таблиц начи­наются с MSYS и их можно пропустить. Для получения подробной информации о том, как обнаружить и проигнорировать системные таблицы, смотрите параграф "VB6 в действии: проект DBStructure" далее в этой главе.

Индексы таблицы

Большинство таблиц в базе данных имеет хотя бы один связанный индексный файл, а иногда и больше. Для доступа к индексам таблицы предназначено свойство Indexes объекта TableDefs. Свойство Indexes - это семейство объектов, каждый из которых соответствует одному индексу таблицы. Чтобы самым простым способом реализовать обращение к каждому индексу в таблице, нужно объявить объект Index.

Dim idx As Index

а затем просмотреть каждый элемент семейства

Indexes с помощью цикла For Each...Next

For Each idx In tbi Indexes


Debug.Print idx.Name

Next

Элемент tbl — это объект TableDef, который объявлялся в предыдущем параграфе. Следующий вложенный цикл отображает имена всех таблиц в базе данных и имена их индексов под каждой таблицей.

For Each tbl In DB.TableDefs

Debug.Print tbl.Name

For Each idx In tbl.Indexes

Debug.Print idx.Name

Next idx

Next tbl

Можно запрашивать определение каждого индекса с помощью свойства Fields и использовать свойство Unique, чтобы определить, требует ли данный индекс уникальных ключей.

Поля таблицы

Наиболее важное свойство объекта TableDefs — свойство Fields (Поля), которое является семейством объектов, каждый из которых соответствует полю таблицы. Чтобы обратиться к полям таблицы, определите в базе данных нужную таблицу. Это делается с помощью индексного значения, которое равно 0 для первой таблицы, 1 — для второй и DB TableDefs Count-1 — для последней таблицы. К полям первой таблицы в базе можно обращаться с помощью объекта, приведенного ниже.

DB TableDefs (0) Fields

Вместо индекса можно использовать имя таблицы. Следующий объект задает все поля в таблице Titles базы данных BIBLIO/

DB.TableDefs ("Titles").Fields

Чтобы обратиться к каждому полю в семействе Fields, объявите объектную переменную Field и просмотрите семейство с помощью цикла For Each...Next. Следующий фрагмент кода отображает имена и типы каждого поля в первой таблице базы данных.

Dim fid As Field

For Each fld In DB.TableDefs(0).Fields

Debug.Print fld.Name, fld Type

Next

Свойство Type (Тип) возвращает целочисленное значение, которое представляет тип поля. Необходимо написать простую процедуру, которая преобразует этот номер в строку "Integer", "String" и т.п.

Другие свойства объекта Field приведены ниже.

•  OrdinalPosition. Определяет порядок полей в таблице.

• AllowZeroLength. Булево свойство, указывающее, может ли поле содержать пус­тую строку.

•  Size. Размер поля в байтах.

• Value. Текущее значение поля.


Содержание раздела