ITable.ForeignKeys

Синтаксис Fore

ForeignKeys: ITableForeignKeys;

Синтаксис Fore.NET

ForeignKeys: Prognoz.Platform.Interop.Db.ITableForeignKeys;

Описание

Свойство ForeignKeys возвращает коллекцию внешних ключей таблицы.

Комментарии

Для создания внешнего ключа используйте метод ITableForeignKeys.Add.

Пример Fore

Для выполнения примера в репозитории предполагается наличие таблиц с идентификаторами «TABLE_L» и «TABLE_F». Таблица «TABLE_F» должна содержать первичный ключ с идентификатором «ID». Таблица «TABLE_L» должна содержать целочисленное поле с идентификатором «FK».

Добавьте ссылки на системные сборки «Metabase», «Db».

Sub UserProc;
Var
    mb: IMetabase;
    Table: ITable;
    FKeys: ITableForeignKeys;
    Key: ITableForeignKey;
Begin
    mb := MetabaseClass.Active;
    Table := mb.ItemById("TABLE_L").Edit As ITable;
    FKeys := Table.ForeignKeys;
    FKeys.Clear;
    Key := FKeys.Add;
    Key.Columns := "FK";
    Key.RTable := "TABLE_F";
    Key.RColumns := "ID";
    Key.IsCascade := True;
    Key.AlterType := DbAlterType.None;
    Key.ComparedWith := 0;
    (Table As IMetabaseObject).Save;
End Sub UserProc;

После выполнения примера поле «FK» в таблице «TABLE_L» будет являться внешним ключом на поле «ID» в таблице «TABLE_F».

Пример Fore.NET

Для выполнения примера в репозитории предполагается наличие таблиц с идентификаторами «TABLE_L» и «TABLE_F». Таблица «TABLE_F» должна содержать первичный ключ с идентификатором «ID». Таблица «TABLE_L» должна содержать целочисленное поле с идентификатором «FK».

Imports Prognoz.Platform.Interop.Db;

[STAThread]
Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    Table: ITable;
    FKeys: ITableForeignKeys;
    Key: ITableForeignKey;
Begin
    mb := Params.Metabase;
    Table := mb.ItemById["TABLE_L"].Edit() As ITable;
    FKeys := Table.ForeignKeys;
    FKeys.Clear();
    Key := FKeys.Add();
    Key.Columns := "FK";
    Key.RTable := "TABLE_F";
    Key.RColumns := "ID";
    Key.IsCascade := True;
    Key.AlterType := DbAlterType.daNone;
    Key.ComparedWith := 0;
    (Table As IMetabaseObject).Save();
End Sub;

После выполнения примера поле «FK» в таблице «TABLE_L» будет являться внешним ключом на поле «ID» в таблице «TABLE_F».

См. также:

ITable