Accueil du site > Les articles > SQL Communication area SQLCA
Version à imprimer Enregistrer au format PDF

SQL Communication area SQLCA

mardi 10 mai 2005, par Serge Gomes Visites  4031

Introduction :

La data-structure SQLCA permet de récupérer des informations relatives à l’exécution d’un ordre SQL. Il est par exemple possible de récupérer le nombre d’enregistrements mis à jour (SQLER3) ou de détecter la fin d’un fichier (SQLCOD=100).

Le précompileur SQL place automatiquement SQLCA dans les caractéristiques de définition du RPG (Carte D).

En RPG c’est une data structure est générée automatiquement par le pré compilateur.

L’ordre d’inclusion SQLCA ne devrait pas être codé dans le programme source RPG. Il est permis de déclarer SQLCA, le rapport sera accepté, mais il est superflu.

Déclaration explicite :

C/EXEC SQL 
C+ INCLUDE SQLCA 
C/END-EXEC 	

SQLCA définition pour RPG

      ISQLCA       DS
      I*      SQL communications area
      I                                        1   8 SQLAID
      I                                    B   9  120SQLABC
      I                                    B  13  160SQLCOD
      I                                    B  17  180SQLERL
      I                                       19  88 SQLERM
      I                                       89  96 SQLERP
      I                                       97 120 SQLERR
      I                                    B  97 1000SQLER1
      I                                    B 101 1040SQLER2
      I                                    B 105 1080SQLER3
      I                                    B 109 1120SQLER4
      I                                    B 113 1160SQLER5
      I                                    B 117 1200SQLER6
      I                                      121 127 SQLWRN
      I                                      121 121 SQLWN0
      I                                      122 122 SQLWN1
      I                                      123 123 SQLWN2
      I                                      124 124 SQLWN3
      I                                      125 125 SQLWN4
      I                                      126 126 SQLWN5
      I                                      127 127 SQLWN6
      I                                      128 128 SQLWN7
      I                                      129 136 SQLEXT
      I*  End of SQLCA
variables de SQLCA les plus utiles :

Utilisées juste après un ordre SQL.
- SQLCODE ou SQLCOD : Permet de détecter les erreurs
— Si SQLCOD = 0 pas d’erreur, Ordre SQL exécuté
— Si SQLCOD > 0 Avertissement (ex SQLCOD = 100 fin de fichier), ordre SQL éxecuté
— Si SQLCOD < 0 Erreur détectée, ordre SQL non exécuté.

- SQLERRMC : Texte du message SQL d’erreur si SQLCODE<0.
- SQLERRML : longueur significative de SQLERRMC
- SQLERRD ou SQLERR : DS de traitements des erreurs et avertissements
- SQLERR 6 zones (6 fois 4 octets binaires) de SQLER1 à SQLER6
— SQLER1 contient le n° de message CPFxxxx (si SQLCODE < à 0)
— SQLER2 contient le N° message CPDxxxx (si SQLCODE < à 0)
— SQLER3 contient le nombres d’enregistrements