Article
· Oct 20 2m de lecture

Lier des tables par programmation

Rubrique FAQ InterSystems

Dans InterSystems IRIS, vous pouvez créer des tables liées à l'aide de commandes, au lieu d'utiliser System Explorer > SQL > Wizard > Linked Tables dans le Portail de gestion :

Pour créer une table liée, utilisez la méthode CreateLinkedTable de la classe %SYSTEM.SQL.Schema. Consultez la référence de la classe pour plus de détails.

Pour l'exécuter, procédez comme suit :

set sc = $SYSTEM.SQL.Schema.CreateLinkedTable("<dsn>","<Schema>","<Table>","<primaryKeys>","<localClass>","<localTable>","")

/// 1er argument : dsn - Nom de la connexion SQL Gateway
/// 2e argument : Schema - Nom du schéma source
/// 3e argument : Table - Nom de la table source
/// 4e argument : primaryKeys - Clé primaire
/// 5e argument : localClass - Nom de la classe liée (par exemple, User.LinkedClass)
/// 6e argument : localTable - Nom de la table SQL liée (SqlTableName)
/// 7e argument : columnMap - Informations sur les champs liés

Si vous l'exécutez de cette façon, la table liée sera créée avec l'attribut ReadOnly. Si vous souhaitez supprimer l'attribut ReadOnly, vous devez le spécifier dans le septième argument, columnMap.

set columnMap("external field name") = $lb("new class property name","new sql field name","read-only(1/0)")

Dans cet exemple, un columnMap est créé qui définit ReadOnly sur 0 pour tous les champs (colonnes), et une table liée est créée. La primaryKey est définie pour hériter de la primaryKey de la table liée. L'utilisation est la suivante :

do ##class(ISC.LinkUtils).LinkTable("<dsn>","<Schema>","<Table>","<localClass>")

/// Premier argument : dsn - Nom de la connexion SQL Gateway
/// Deuxième argument : Schéma - Nom du schéma source du lien
/// Troisième argument : Table - Nom de la table source du lien
/// Quatrième argument : localClass - Nom de la classe de destination du lien (par exemple, User.LinkedClass)

Vous pouvez également voir l'exemple utilisé ici : https://github.com/Intersystems-jp/CreateLinkedTable

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer