Создание базы данных при помощи DAO

1. Необходимо использовать оператор Dim для создания новых объектных переменных для каждого объекта в базе данных

· один объект Database;

· один объект TableDef для каждой таблицы;

· один объект Field для каждого поля в каждой таблице;

· один объект Index для выбранных полей в определенных разработчиком таблицах.

Dim MyDB As Database

Dim MyWs As Workspace

Dim TownTd As TableDef, StudTd as TableDef

Dim TempFlds(2) as Field

Dim TownFlds(2) As Field, StudFlds(3) As Field?

Dim TownIdx as Index, StudIdx(2) as Index

Dim StudTel as Relatioin

2. Необходимо использовать метод CreateDatabase объекта Workspace для создания новой базы данных. Для метода CreateDatabase желательно использовать три аргумента: Название базы данных (путь к файлам базы); тип национальных стандартов (кодировок); версия базы данных. Также можно использовать строку соединения (либо использовать готовое соединение). В этой строке указывается пароль, источник данных, версия Мicrosoft Jet.

Константы национальных стандартов Описание
dbLangGeneral English, German, French, Portuguese, Italian, and Modern Spanish
dbLangChineseSimplified Simplified Chinese
dbLangCyrillic Russian
dbLangSpanish Traditional Spanish
dbLangSwedFin Swedish and Finnish
dbLangTurkish Turkish
Константы типов ПО Описание
DbEncrypt Creates an encrypted database.
dbVersion30 Creates a database that uses the Microsoft Jet database engine version 3.0 file format (compatible with version 3.5).
dbVersion40 Creates a database that uses the Microsoft Jet database engine version 4.0 file format.
dbVersion120 Creates a database that uses the Microsoft Access database engine version 12.0 file format.

Set MyWs = DBEngine.Workspaces(0)

Set MyDB = MyWs.CreateDatabase("DBPoba1.mdb", _

dbLangCyrillic, dbVersion40)

Создание таблицы

MyDB.Execute "CREATE TABLE town ([key_town] LONG, [name_town] TEXT (100), [region_town] TEXT (100))"

Добавить, удалить, изменить столбцы можно при помощи ALTER TABLE

ALTER TABLE stud ADD COLUMN spec_stud TEXT (50)

Для удаления поля используем DROP

ALTER TABLE stud DROP COLUMN spec_stud

Используя ALTER TABLE, можно одновременно удалить или добавить только один столбец

Создание и удаление индексов

Существует три различных способа создания индексов

при создании таблицы с помощью команды CREATE TABLE;

с помощью команды CREATE INDEX

с помощью команды ALTER TABLE

Если мы хотим добавить внешний ключ и поддерживать целостность ссылок, то необходимо использовать предложение CONSTRAINT в командах CREATE TABLE и ALTER TABLE.

Иногда можно сначала создать таблицу при помощи CREATE TABLE, а затем добавить индекс с помощью операторов CREATE INDEX или ALTER TABLE

Создание индекса при помощи CREATE TABLE

Пример создания индекса по двум столбцам

CREATE TABLE stud ([fio_stud] TEXT (50), [birthday_stud] DATATIME, [key_town] LONG, CONSTRAINT stud_index UNIQUE ([fio_stud],[birthday_stud]))

Чтобы проиндексировать только один столбец, предложение CONSTRAINT помещается в определение столбца и записывается после типа данных индексируемго столбца

CREATE TABLE stud ([key_stud] counter CONSTRAINT key_stud PRIMARY, [fio_stud] TEXT (50), [birthday_stud] DATATIME, [key_town] dbLong)

Создание индекса при помощи CREATE INDEX

CREATE UNIQUE INDEX MyIndex ON town ([key_town])

В необязательном предложении WITH можно устанавливать условия на значения:

· PRIMARY - столбец первичного индекса;

· DISALLOW NULL - столбец не может быть оставлен пустым

· IGNORE NULL - запись будет проигнорирована, если этот столбец пуст

CREATE UNIQUE INDEX MyIndex ON stud (fio_stud) WITH DISALLOW NULL

Запись не будет вставлена в таблицу, если поле fio_stud будет пустым

Можно использовать CREATE INDEX, чтобы создать индекс для присоединенной таблицы, которая его не имеет. Для этого не обязательно иметь права на доступ к таблице. Достаточно иметь права только на чтение.

Создание индекса при помощи ALTER TABLE

ALTER TABLE stud ADD CONSTRAINT key_stud PRIMARY (key_stud)

можно добавить индекс по многим полям

ALTER TABLE stud ADD CONSTRAINT MyIndex UNIQUE (fio_stud, birthday_stud)

Предложение CONSTRAINT и целостность ссылок

Предложение CONSTRAINT позволяет определять первичные и внешние ключи, чтобы установить отношения и поддерживать целостность ссылок

Создание индекса по одному полю

CONSTRAINT имя {PRIMARY KEY | UNIQUE | REFERENCES внешняя таблица [(внешнее поле1, внешнее поле2)]}

Создание индекса по многим полям

CONSTRAINT имя {PRIMARY KEY (первич1 [, первич2]) | UNIQUE (уник1 [, уник2]) | FOREIGN KEY (ссылка1 [, ссылка2]) REFERENCES внешняя таблица [(внешнее поле1, внешнее поле2)]}

Аргумент Описание
Имя Наименование создаваемого индекса
первич1, первич2 Поля первичного ключа
уник1, уник2 Поля неповторяющегося ключа
ссылка1, ссылка 2 Наименование поля внешнего ключа или полей, которые ссылаются на поля в другой таблице
внешняя_таблица Наименование внешней таблицы, содержащей поле или поля, определяемые параметром внешнее поле
внешнее_поле1 Наименование поля или полей в таблице внешняя_таблица, заданных ссылка1, ссылка2

Пример добавления внешнего ключа key_town к таблице stud для создания отношения (использование ключевых слов FOREIGN KEY) межу таблицей stud и таблицей town

ALTER TABLE stud ADD CONSTRAINT key_town FOREIGN KEY (key_town) REFERENCES town (key_town)


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



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