Utiliser des procédures stockées pour générer des clés
Cet exemple vous montre comment insérer une clé (ID) générée par une procédure stockée dans une autre table, à l'aide de relations locales.
Créons tout d'abord la procédure stockée de démonstration dans la base de données "AdventureWorks". Pour ce faire, exécuter le script ci-dessous par rapport à la base de données. Vous pouvez ce faire à partir d'une fenêtre de requête de Microsoft SQL Server Management Studio, ou directement depuis l'onglet Requête BD de MapForce, voir Parcourir et interroger des bases de données. Dans tous les cas, s'assurer que votre compte d'utilisateur de base de données a la permission de créer des procédures stockées.
CREATE PROCEDURE Production.uspAddProductModelEx ,@Inst xml ,@ProductModelID int OUTPUT BEGIN |
La procédure stockée ci-dessus prend deux paramètres (@ModelName, @Inst) en entrée et effectue une opération INSERT dans la table ProductModel. Elle renvoie ensuite le @ProductModelID généré en tant que paramètre de sortie. L'exigence consiste à insérer le @ProductModelID renvoyé par la procédure stockée dans la table ProductModelIllustration.
Les étapes suivantes vous expliquent comment créer un mappage répondant à l'exigence ci-dessus.
1.Connectez-vous à la base de données « AdventureWorks » depuis MapForce, comme décrit dans la section Ajouter des procédures stockées dans le mappage. Assurez-vous que votre compte d'utilisateur de base de données détient la permission de créer des procédures stockées.
2.Lorsque vous êtes invité à choisir des objets de base de données, sélectionnez la table ProductModelIllustration et la procédure stockée uspAddProductModelEx.

3.Cliquez sur le bouton Afficher Menu contextuel
à côté de la procédure stockée, puis sélectionnez Afficher Nœuds comme Cible. La procédure stockée apparaît maintenant en tant que composant cible dans le mappage, à l'endroit où le côté gauche recense les paramètres d'entrée.

4.Si vous le souhaitez, pour exécuter la procédure stockée au sein d’une transaction, cliquez à nouveau sur le bouton Afficher menu contextuel
, sélectionnez Paramètres de procédure, puis cochez la case Utiliser transactions. La définition d’une transaction pour la procédure stockée garantit que la récupération de la clé et l’insertion de l’enregistrement s’effectuent au cours de la même transaction.
5.Cliquez avec le bouton droit sur la barre de titre du composant de base de données et sélectionnez Ajouter/Supprimer/Éditer des objets de base de données dans le menu contextuel.
6.Cliquez sur Ajouter/Éditer relations, puis sur Ajouter relation. Définissez les relations comme indiqué ci-dessous.

7.Cliquez sur OK pour fermer le dialogue. Notez que la table ProductModelIllustration apparaît désormais comme un enfant de la procédure stockée. Le paramètre de sortie de la procédure stockée (@ProductModelID) s’affiche pour indiquer qu’il sera utilisé dans la relation locale, mais il ne dispose d’aucun connecteur d’entrée ou de sortie.

8.Dans cet exemple, le paramètre @Inst est de type XML. Cliquez avec le bouton droit sur le paramètre @Inst du composant et sélectionnez Attribuer un schéma XML à un champ dans le menu contextuel. Sélectionnez ensuite le schéma Production.ManuInstructionsSchemaCollection dans la base de données. Lorsque vous êtes invité à sélectionner un élément racine, conservez la valeur par défaut et cliquez sur OK. Pour plus d’informations sur le mappage de données vers des champs XML de base de données, voir Mapper des données XML vers/depuis des champs de base de données.

9.Ajoutez les composants source qui fournissent les données à insérer dans la base de données. Dans cet exemple, les données de source sont fournies par des constantes ; néanmoins, tout autre composant de source pris en charge par MapForce peut agir en tant qu'entrée. Pour plus d'informations concernant les constantes, voir Ajouter une constante au mappage.

Puisque ce mappage met à jour une base de données, vous ne pouvez pas consulter sa sortie directement comme c'est le cas pour d'autres mappages. Au lieu, cliquer sur la touche Sortie pour afficher le pseudo-SQL contenant des indices concernant la manière dont la base de données sera modifiée. Si vous avez activé des transactions, celles-ci se produiront selon les indications par les commentaires.

Le pseudo-SQL afficher dans le volet Sortie ne montre pas les commandes de transaction réelles, il ne montre que des indices (comme des commentaires). Les commandes SQL réelles sont néanmoins envoyées à l'API de base de données sous-jacente. |
Pour exécuter le mappage par rapport à la base de données, suivre une des deux étapes :
•Dans le menu Sortie, cliquer sur Exécuter Script SQL.
•Cliquer sur la touche de la barre d'outils Exécuter Script SQL
.