Для выполнения примера предполагается наличие в репозитории базы данных с идентификатором «BD».
Sub UserProc;
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 UserProc;
После выполнения примера в корневом каталоге репозитория будет создана новая таблица. В таблице будет содержаться одно текстовое поле, а также индекс по этому полю. Табличные данные будут храниться в схеме, на которую настроена база данных «BD».
Для выполнения примера предполагается наличие в репозитории базы данных с идентификатором «BD». База данных настроена для подключения к серверу БД, в котором содержится таблица с физическим именем «Table_1».
Sub UserProc;
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 UserProc;
После выполнения примера в корневом каталоге репозитория будет создана прикрепленная таблица. Данная таблица будет ссылаться на таблицу с физическим именем «Table_1», хранящуюся на сервере БД.
См. также: