Procédures stockées et Relations locales
Les relations locales sont des relations logiques entre les champs de base de données que vous pouvez créer dans MapForce, ce qui vous évite de modifier la base de données sous-jacente, voir aussi Définir des relations locales. Vous pouvez définir des relations locales non seulement pour les champs de base de données, mais aussi pour les procédures stockées, aussi bien pour les composants de source et de cible.
Dans les composants de source, les relations locales permettent de lire des données depuis des objets liés, par exemple, lire des ID depuis une table de base de donnée et appeler une procédure stockée avec chacune de ces ID pour extraire des informations connexes. Il est également possible d'appeler une procédure stockée avec des données extraite d'une autre procédure.
Dans les composants de cible, les relations locales permettent de définir un ordre hiérarchique dans lequel plusieurs procédures connexes doivent être appelées. Par exemple, vous pouvez d'abord appeler une procédure stockée qui crée une valeur ID, et une autre qui insère des informations connexes dans une table. Il est également possible de mélanger des procédures stockées et des tables dans des relations locales. Par exemple, vous pouvez effectuer l'insertion directement sur une table liée au lieu d'appeler une autre procédure, voir Utiliser des procédures stockées pour générer des clés.
Pour créer une relation locale :
1.Cliquer sur la barre de titre d'un composant de base de données et choisir Ajouter/Supprimer/Éditer des objets de base de données depuis un menu de contexte. Le dialogue "Ajouter/Supprimer/Éditer des objets de base de données" s'ouvre.
2.Cliquer sur Ajouter/Éditer relations.
3.Cliquer sur Ajouter relation et sélectionner les objets entre lesquels vous pouvez créer la relation.
Comme illustré ci-dessus, une relation locale consiste en un objet de clé primaire/unique et un objet de clé étrangère. On pourrait le comparer à une relation parent-enfant. Dans le composant de mappage, l'objet (table, mode, procédure, etc.) dans lequel la clé primaire/unique se trouve apparaîtra en tant que parent alors que l'objet dans lequel la clé étrangère se trouve apparaîtra imbriquée en-dessous. Par exemple, dans le composant de base de données comme illustré ci-dessous, une relation locale a été définie entre une colonne recordset (RS1.Department) et une colonne de table (Department.Name). Par conséquent, la table Department apparaît en tant qu'enfant d'une procédure stockée sur le mappage. Cet exemple est discuté avec plus de détails dans Relations locales dans les composants de source.
La table suivante recense tous les champs possibles entre lesquels vous pouvez définir des relations locales. Des relations mixtes sont possibles (par exemple, mapper la sortie d'une procédure stockée dans une colonne de base de données). Les champs participant à la relation doivent avoir les mêmes types de données ou des txpes de données compatibles.
Clé primaire/unique | Clé étrangère |
---|---|
•La colonne d'une table de base de données ou d'un mode •Paramètre de sortie ou valeur de retour d'une procédure stockée, voir aussi Procédures stockées •La colonne d'un recordset retournée par une procédure stockée* * Applicable si la procédure stockée est appelée soit en tant que source de données (sans paramètres) ou en tant que fonction (avec paramètres d'entrée et de sortie). Pour que le recordset devienne disponible pour la sélection, vous devez exécuter la procédure stockée une fois, pour extraire le recordset. •La colonne d'une instruction SELECT définie par l'utilisateur, voir aussi Instructions SELECT SQL en tant que tables virtuelles. | •La colonne d'une table de base de données ou d'un mode •Paramètre d'entrée d'une procédure stockée •Paramètre d'entrée d'une instruction SELECT définie par l'utilisateur |