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

Пример 1

Для выполнения примера предполагается наличие в репозитории базы данных с идентификатором «BD».

Sub Main;

Var

MB: IMetabase;

CrInfo: IMetabaseObjectCreateInfo;

Table: ITable;

MObj: IMetabaseObject;

f: ITableField;

i: ITableIndex;

Begin

MB := MetabaseClass.Active;

CrInfo := MB.CreateCreateInfo;

CrInfo.ClassID := MetabaseObjectClass.KE_CLASS_TABLE;

CrInfo.Id := "NewTable";

CrInfo.Name := "Новая таблица";

CrInfo.Parent := MB.Root;

MObj := MB.CreateObject(CrInfo).Edit;

Table := MObj As ITable;

Table.Database := Mb.ItemById("BD").Bind As IDatabase;

//Поле таблицы

f := Table.Fields.Add;

f.DataType := DbDataType.String;

f.Id := "Text_Field";

f.Name := "Текстовое поле";

f.Size := 50;

//Индекс по созданному полю

i := Table.Indexes.Add;

i.Fields.Add(f);

i.Primary := True;

Table.NativeName := "NewTable";

MObj.Save;

End Sub Main;

После выполнения примера в корневом каталоге репозитория будет создана новая таблица. В таблице будет содержаться одно текстовое поле, а также индекс по этому полю. Табличные данные будут храниться в схеме, на которую настроена база данных «BD».

Пример 2

Для выполнения примера предполагается наличие в репозитории базы данных с идентификатором «BD». База данных настроена для подключения к серверу БД, в котором содержится таблица с физическим именем «Table_1».

Sub Main;

Var

Mb: IMetabase;

CrInfo: IMetabaseObjectCreateInfo;

MObj: IMetabaseObject;

Table: ITable;

Begin

Mb := MetabaseClass.Active;

CrInfo := MB.CreateCreateInfo;

CrInfo.ClassID := MetabaseObjectClass.KE_CLASS_EXTERNTABLE;

CrInfo.Id := "NewAttachTable";

CrInfo.Name := "NewAttachTable";

CrInfo.Parent := Mb.Root;

MObj := MB.CreateObject(CrInfo).Edit;

Table := MObj As ITable;

Table.Database := Mb.ItemById("BD").Bind As IDatabase;

Table.AttachTable("Table_1", True);

MObj.Save;

End Sub Main;

После выполнения примера в корневом каталоге репозитория будет создана прикрепленная таблица. Данная таблица будет ссылаться на таблицу с физическим именем «Table_1», хранящуюся на сервере БД.

См. также:

Примеры