PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

PV

  • 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
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Connecteur Natif Sybase : Valeur de sortie d'une procédure stockée exécutée sur le serveur
Accès NatifsDisponible uniquement avec ce type de connexion
Présentation
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.
Comment le faire ?

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 :
  1. Déclarer une source de données. Cette source de données contiendra le résultat de la procédure stockée SQL.
  2. 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.
  3. 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.
Exemple
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
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire