|
|
|
|
- Présentation
- Comment le faire ?
- Les étapes
- Remarques
- Exemple
- 1. Déclaration de la source de données
- 2. Déclaration des variables utilisées par la procédure
- 3. Exécution de la procédure stockée et récupération du résultat
Connecteur Natif Sybase : Valeur de sortie d'une procédure stockée exécutée sur le serveur
Disponible uniquement avec ce type de connexion
Le Connecteur Natif Sybase (également appelé Accès Natif Sybase) permet de : - spécifier des valeurs d'entrées lors de l'appel à une procédure stockée.
- récupérer des valeurs de sorties après l'appel d'une procédure stockée.
Cette fonctionnalité est disponible à partie de ASE 12.5. Les étapes Pour spécifier et récupérer des valeurs lors de l'exécution d'une requête de type "Procédure stockée", il faut : - Déclarer une source de données. Cette source de données contiendra le résultat de la procédure stockée SQL.
- Déclarer les différentes variables de la procédure stockée (variables d'entrée et variables de sortie).
Les variables sont récupérées dans le type spécifié en WLangage. Par défaut les variables sont de type texte. Des conversions peuvent donc se produire du type natif de la base vers le type WLangage. Ces conversions peuvent entraîner des arrondis ou des formatages inattendus (par exemple une Date transformée en chaîne). Il est donc conseillé de spécifier de façon adéquate les types WLangage des variables avant d'exécuter la procédure stockée. Ceci est peut être fait :- soit en initialisant la valeur de la variables (types simples : entier, chaîne, flottant)
- soit en spécifiant le type attendu grâce à la propriété Type (non supporté dans cette version).
Le nom de ces variables doit correspondre au nom des paramètres de cette procédure sur Sybase. Remarque : Dans certains cas, le serveur n'accepte pas de réaliser une conversion implicite. Une erreur de conversion est alors affichée. Dans ce cas, il est nécessaire d'initialiser le type en lui fixant une valeur quelconque dans le type voulu. Par exemple, pour fixer un type numérique, il suffit de faire MaRequête.Paramètre = 0. - Exécuter la procédure stockée à l'aide de la fonction HExécuteRequêteSQL.
Remarques - La fonction HExécuteRequêteSQL doit être utilisée avec :
- le nom de la connexion,
- la constante hRequêteSansCorrection.
- Les variables déclarées doivent être identiques à celles utilisées. Dans le cas contraire, une erreur WLangage est affichée.
- Dans l'appel à la procédure stockée, il est nécessaire d'utiliser la syntaxe spécifique à la base de données utilisée, y compris pour la syntaxe des paramètres. Ainsi, pour Sybase, les paramètres sont spécifiés avec la syntaxe @NomParam. Attention : le caractère "@" doit être suivi d'au moins une lettre (la syntaxe @1 est interdite).
Il est possible d'utiliser plusieurs fois le même paramètre. Dans ce cas, la variable correspondante sera ré-utilisée. - La valeur de retour de la procédure stockée est renvoyée dans une variable automatiquement définie par le Connecteur Natif Sybase. Cette variable a pour nom RETURN_VALUE.
- Pour exécuter une requête sans que le bind ne soit activé, utiliser la constante hSansBind dans la fonction HExécuteRequêteSQL.
La procédure stockée MyProc renvoie dans @res la somme de @p& et de @p21. La valeur de retour est 2*@res. Le code permettant de créer cette procédure sur le serveur est le suivant : CREATE PROCEDURE MyProc(@p1 int, @p2 int, @res int output) AS select @res=@p1+@p2 return 2*@res 1. Déclaration de la source de données La source de données permet de manipuler les différentes variables de la procédure à exécuter.
MaProc est une Source de Données
2. Déclaration des variables utilisées par la procédure La déclaration des variables manipulées par la procédure se fait à partir de la source de données. MaProc.p1 = 10 // Déclare automatiquement un entier initialisé à 3 MaProc.p2 = 20
Remarque : Il n'est pas obligatoire de déclarer toutes les variables utilisées. Dans cet exemple, la variable utilisée pour connaître le résultat de la procédure n'est pas déclarée. 3. Exécution de la procédure stockée et récupération du résultat Pour exécuter la procédure stockée, il suffit d'utiliser la fonction HExécuteRequêteSQL : SI HExécuteRequêteSQL(MaProc, "MaConnexion", hRequêteSansCorrection, "MyProc @p1,@p2,@res") ALORS Trace("res=" + MaProc.res) Trace("p1=" + MaProc.p1) Trace("p2=" + MaProc.p2) Trace("return_value=" + MaProc.return_value) SINON Erreur(HErreurInfo()) FIN
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|