PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • Présentation
  • Comment le faire ?
  • Les étapes
  • Remarques
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 : Exécuter plusieurs fois une même procédure stockée
Accès NatifsDisponible uniquement avec ce type de connexion
Présentation
Dans certains cas, il peut être intéressant d'exécuter plusieurs fois une même procédure stockée en modifiant uniquement un (ou plusieurs) paramètre(s).
Plusieurs solutions peuvent être mises en place :
  1. Exécuter directement la requête (avec la fonction HExécuteRequêteSQL) autant de fois que nécessaire en modifiant à chaque fois le ou les paramètre(s) voulu(s).
  2. Préparer la requête à exécuter (fonction HPrépareRequêteSQL) ainsi que les différents paramètres à modifier puis exécuter la requête autant de fois que nécessaire avec la fonction HExécuteRequêteSQL. Cette seconde solution est beaucoup plus rapide et optimise le temps de parcours du résultat de la requête (cas d'une requête de type SELECT).
Cette page d'aide présente la mise en place de cette seconde solution.
Comment le faire ?

Les étapes

Pour préparer et exécuter une requête plusieurs fois, il faut :
  1. Déclarer une source de données. Cette source de données contiendra le résultat de la requête SQL.
  2. Déclarer les types des différentes variables de la requête.
    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 qui peuvent entraîner 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 requête. Ceci est peut être fait :
    • soit en initialisant la valeur de la variable (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. Préparer la requête avec la fonction HPrépareRequêteSQL.
  4. Indiquer la valeur du ou des différents paramètres à prendre en compte et exécuter la requête à l'aide de la fonction HExécuteRequêteSQL. Seul le nom de la source de données correspondant à la requête doit être spécifié.
Cette dernière étape doit être répétée autant de fois que nécessaire.

Remarques

  • La fonction HPrépareRequêteSQL doit être utilisée avec :
    • le nom de la connexion,
    • l'option 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.
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire