AlterTable(OldTable: ITable; [Options: Integer = 0]);
OldTable - таблица, структуру которой необходимо обновить в соответствии со структурой текущей таблицы.
Options - зарезервированный параметр.
Метод AlterTable осуществляет обновление структуры таблицы OldTable на сервере БД в соответствии со структурой текущей таблицы.
Обновляется информация о следующих элементах таблицы:
физическое имя таблицы.
информация о списке полей, а также о структуре каждого поля.
информация о списке и структуре индексов, ограничений, триггеров таблицы.
Если в таблице OldTable есть элементы, которых нет в текущей таблице - они будут удалены, если в текущей таблице есть элементы, которых нет в таблице OldTable - они будут добавлены.
Для выполнения примера предполагается наличие в репозитории двух таблиц с идентификаторами «Table_1» и «Table_2».
Sub UserProc;
Var
MB: IMetabase;
Table, OldTable: ITable;
Field: ITableField;
Begin
Mb := MetaBaseClass.Active;
Table := Mb.ItemById("Table_1").Edit As ITable; //
таблица, в соответствии со структурой которой, будем обновлять
OldTable := Mb.ItemById("Table_2").Bind As ITable; // таблица, структуру на сервере БД которой, будем обновлять
Table.NativeName := OldTable.NativeName; // временно устанавливаем одинаковые физические имена
// Необходимо для сохранения уникальности физ. имени таблицы OldTable
Field := Table.Fields.Add; // Добавляем временное поле, которое затем будет создано в обновляемой таблице
Field.Id := "NewField";
Field.DataType := DbDataType.String;
Field.Size := 20;
Table.AlterTable(OldTable);
End Sub UserProc;
После выполнения примера будет обновлена структура таблицы на сервере БД, на которую ссылается таблица репозитория «Table_2». Структура будет установлена в соответствии со структурой таблицы, на которую ссылается таблица репозитория «Table_1», а также будет добавлено одно новое текстовое поле «NewField».
См. также: