Accueil du site > Les articles > Programme de service pour gérer la récupération des informations via la (...)
Version à imprimer Enregistrer au format PDF

Programme de service pour gérer la récupération des informations via la SQLDA

Ensemble de fonctions pour gérer correctement la récupération des informations de la SQLDA

vendredi 14 décembre 2007, par David Malle Visites  1048

Ce programme de service contient une série de fonctions qui permettent de gérer la récupération des informations via la SQLDA.


Fonction SPACKTOSNUM

- Lecture d’une zone packée contenue dans une chaine de caractère
- Paramètres en entrée :

  • Valeur packée en entrée stockée dans la chaîne de caractère
  • Longueur occupée dans la chaîne de caractère
  • Longueur partie entière
  • Longeur partie décimale

- Valeur retournée :

  • Chaîne de caractère contenant la valeur numérique en clair, correctement formattée avec le caractère décimale.

Fonction SDECTOSNUM

- Lecture d’une zone décimale contenue dans une chaine de caractère
- Paramètres en entrée :

  • Valeur décimale en entrée stockée dans la chaîne de caractère
  • Longueur occupée dans la chaîne de caractère
  • Longueur partie entière
  • Longeur partie décimale

- Valeur retournée :

  • Chaîne de caractère contenant la valeur numérique en clair, correctement formattée avec le caractère décimale.

Fonction ODDZONE

- Test si une zone est impaire
- Paramètre en entrée :

  • Valeur en entrée

- Valeur retournée :

  • *on si la zone est impaire, *off sinon.

Fonction SQLBUFFERLEN

- Déterminer la longueur d’une zone dans le buffer selon le type et la taille indiquée dans la SQLDA
- Paramètre en entrée :

  • Type de la zone indiquée dans la SQLDA
  • longueur de la zone indiquée dans la SQLDA

- Valeur retournée :

  • Longeur réelle occupée par la zone dans le buffer.

Fonction ADDQUOTE

- Utilisation pour les sorties CSV. Traiter les quote dans une chaîne de caractères.
- Paramètres en entrée :

  • Pointeur sur la chaîne de caractères à traiter.
  • Caractère utilisé comme séparateur de champs.
  • O ou N souhaite t on encadrer chaque champ par des quotes.

- La chaîne d’origine est directement modifiée.

- Fonctionnement :

  • Si l’encadrement par des quotes a été demandé, la chaîne est encadrée par des quotes.
  • Si la chaîne contient une ou plusieurs quote, elles sont doublées et le champ sera encadré par des quotes.
  • Si la chaîne contient le caractère séparateur de champ, elle est encadrée par des quotes.

Fonction ADDESCAPEC

- Remplacement de séquences de caractères dans une chaîne.
- Paramètre en entrée :

  • Pointeur sur la chaîne de caractères à traiter.

- La chaîne d’origine est directement modifiée.

- Fonctionnement :

  • Remplacement de toutes les occurences listées dans la fonction. Par exemple & est replacées par son entité HTML ou les caractères utilisés pour insérer des codes couleurs sont supprimés.
  • Cette fonction est particulièrement utilisée pour les sorties XML, qui ne supporte pas certains caractères.

Installation

- Créer une bibliothèque, ou utiliser une bibliothèque existente. Pour la suite je l’appelle MYBIB dans cette procédure.
- Mettre MYBIB dans la liste de bibliothèque et définir MYBIB comme bibliothèque par défaut.
- Créer les fichiers sources QRPGLESRC et QSRVSRC dans la bibliothèque MYBIB.
- Copier le source du programme SRVPSQLLDA dans QRPGLESRC.
- Copier le fichier signature SRVPSQLLDA dans le fichier QSRVSRC.
- Créer un répertoire de liage nommé MYBNDDIR dans MYBIB : CRTBNDDIR BNDDIR(MYBNDDIR) TEXT(’Répertoire de liage outils’)
- Créer le programme de service et ajouter le au répertoire de liage :

  • CRTSQLRPGI OBJ(SRVPSQLLDA) OBJTYPE(*MODULE) TGTRLS(*CURRENT) DBGVIEW(*SOURCE)
  • CRTSRVPGM SRVPGM(SRVPSQLLDA)
  • ADDBNDDIRE BNDDIR(MYBNDDIR) OBJ((SRVPSQLLDA))

Exemple d’utilisation : Résultat d’une requete SQL au format CSV ou XML dans un fichier de l’IFS

Documents joints

  • SRVPSQLLDA (texte - 23.8 ko)

    Programme de service pour gérer les récupération d’informations via la SQLDA. A copier dans le fichier source QRPGLESRC de votre bibliothèque sous le nom SRVPSQLLDA.

  • SRVPSQLLDA (texte - 251 octets)

    Signature des procédures du programme de service SRVPSQLLDA. A copier sans le fichier source QSRVSRC de votre bibliothèque sous le nom SRVPSQLLDA.