Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/07/2006, 13h25   #1
Membre régulier
 
Inscription : janvier 2003
Messages : 255
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : janvier 2003
Messages : 255
Points : 92
Points : 92
Envoyer un message via ICQ à Antichoc Envoyer un message via MSN à Antichoc
Par défaut SQLCODE anormal à 100

Je travaille actuellement sur un environnement mainframe avec un base DB2.

En utilisant l'outils de TSO "SPUFI" pour réaliser une requête SELECT ; j'obtient en résultat un enregistrement ET un Sqlcode égal à 100. Or ce code est retourné uniquement lorsque la requête c'est bien déroulée et que ce dernier n'a pas de données en retour ...

Est-ce normal ?

Voici le résultat de la requête :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
                SELECT                                                  00970036
                  TCLINFOY ,                                            00980036
                  TCLIDCREAT   ,                                        00990036
                  TCLIBINDP     ,                                       01000036
                  TCLILSIGL     ,                                       01010036
                  TCLILNOMPREN  ,                                       01020036
                  TCLILPATRONYM ,                                       01030036
                  TCLILNAIS     ,                                       01040036
                  TCLICDEPTNAIS ,                                       01050036
                  TCLIDNAIS     ,                                       01060036
                  TCLICNAT      ,                                       01070036
                  TCLICCSP      ,                                       01080036
                  TCLICANCPROF  ,                                       01090036
                  TCLIMRESS     ,                                       01100036
                  TCLINTELEMP   ,                                       01110036
                  TCLINPOSTEMP  ,                                       01120036
                  TCLICAPE      ,                                       01130036
                  TCLICFICHBDF  ,                                       01140036
                  TCLIDFICHBDF  ,                                       01150036
                  TCLINRANG     ,                                       01160036
                  TCLIDDCD      ,                                       01170036
                  TCLICFICHBDF  ,                                       01180036
                  TCLICNEIERTZ  ,                                       01190036
                  TCLIDNEIERTZ  ,                                       01200036
                  TCLICTMAL     ,                                       01210036
                  TCLICNONASS   ,                                       01220036
                  TCLIDAUDNEIERTZ ,                                     01230036
                  TADRCTYPE     ,                                       01240036
                  TADRDMOD     ,                                        01250036
                  TADRBCHAD     ,                                       01260036
                  TADRLVBEA     ,                                       01270036
                  TADRLADRE     ,                                       01280036
                  TADRLVILL     ,                                       01290036
                  TADRCPTT     ,                                        01300036
                  TADRLLOCACH     ,                                     01310036
                  TCLFCHAB1     ,                                       01320036
                  TCLFCANCHAB1    ,                                     01330036
                  TCLFCHAB2      ,                                      01340036
                  TCLFCSITFAM    ,                                      01350036
                  TCLFBENF       ,                                      01360036
                  TCLFCTITBQ     ,                                      01370036
                  TCLFDPSAD      ,                                      01380036
                  TCLFBTRSSR     ,                                      01390036
                  TCLFNTELP      ,                                      01400036
                  TCLFCBQCCP     ,                                      01410036
                  TCLFCANCBQCCP  ,                                      01420036
                  TCLFDPCTX       ,                                     01430036
                  TCLFLTELIND1    ,                                     01440036
                  TCLFNTELNO1     ,                                     01450036
                  TCLFLTELIND2    ,                                     01460036
                  TCLFNTELNO2     ,                                     01470036
                  TCLFLTELIND3    ,                                     01480036
                  TCLFNTELNO3     ,                                     01490036
                  TCLFLTELIND4    ,                                     01500036
                  TCLFNTELNO4     ,                                     01510036
                  TCLFLTELIND5    ,                                     01520036
                  TCLFNTELNO5     ,                                     01530036
                  TCLFLTELIND6    ,                                     01540036
                  TCLFNTELNO6     ,                                     01550036
                  TCLFCMOTCLESSR1 ,                                     01560036
                  TCLFDMOTCLESSR1 ,                                     01570036
                  TCLFCMOTCLESSR2 ,                                     01580036
                  TCLFDMOTCLESSR2 ,                                     01590036
                  TCLFCMOTCLESSR3 ,                                     01600036
                  TCLFDMOTCLESSR3 ,                                     01610036
                  TCLFCMOTCLESSR4 ,                                     01620036
                  TCLFDMOTCLESSR4 ,                                     01630036
                  TCLFCMOTCLESSR5 ,                                     01640036
                  TCLFDMOTCLESSR5 ,                                     01650036
                  TCLFCMOTCLESSR6 ,                                     01660036
                  TCLFDMOTCLESSR6 ,                                     01670036
                  TCLFCMOTCLESSR7 ,                                     01680036
                  TCLFDMOTCLESSR7 ,                                     01690036
                  TCLFCMOTCLESSR8 ,                                     01700036
                  TCLFDMOTCLESSR8                                       01710036
           FROM TSIN.TBCLIDE,TSIN.TBCLFOY,TSIN.TBADRES                  01720036
           WHERE TCLINFOY = 8800000138                                  01730042
             AND TCLINFOY = TADRNFOY                                    01740036
             AND TCLINFOY = TCLFNFOY                                    01750036
             AND TADRCTYPE = 'FO';                                      01760038
***Display de l'enregistrement trop long ICI***
DSNE610I NUMBER OF ROWS DISPLAYED IS 1
DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 100

DSNE617I COMMIT PERFORMED, SQLCODE IS 0
DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0

DSNE601I SQL STATEMENTS ASSUMED TO BE BETWEEN COLUMNS 1 AND 72
DSNE620I NUMBER OF SQL STATEMENTS PROCESSED IS 1
DSNE621I NUMBER OF INPUT RECORDS READ IS 102
DSNE622I NUMBER OF OUTPUT RECORDS WRITTEN IS 118
Antichoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2006, 05h46   #2
Membre Expert

 
Homme François Durand
Spécialiste Delivery Mainframe IBM
Inscription : octobre 2005
Messages : 1 097
Détails du profil
Informations personnelles :
Nom : Homme François Durand
Âge : 53
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Spécialiste Delivery Mainframe IBM
Secteur : Finance

Informations forums :
Inscription : octobre 2005
Messages : 1 097
Points : 1 706
Points : 1 706
Citation:
Code :
1
2
 
DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS number
Explanation:
This message is written to the output data set following the successful
execution of an SQL statement from the input data set. 'number' specifies
the SQL return code for the statement. These return codes are listed in SQL
return codes.
A mon avis ce message signifie juste que SPUFI a exécuté un curseur implicite et que la fin de ce dernier a été atteinte (mais ce n'est qu'une supposition ...).

C'est bien le message suivant qui est le plus important :
Code :
1
2
 
DSNE610I NUMBER OF ROWS DISPLAYED IS 1
Donc tout est normal ...
Luc Orient est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2006, 21h02   #3
Membre régulier
 
Inscription : janvier 2003
Messages : 255
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : janvier 2003
Messages : 255
Points : 92
Points : 92
Envoyer un message via ICQ à Antichoc Envoyer un message via MSN à Antichoc
Le problème est qu'un traitement sur le SQL code est réalisé après l'exécution.

Mais le problème est résolu.

En effet, je penses que tu as raison. Le premier sqlcode traite le curseur (donc pas de resultat d'où = 100)

Le second lui renvoi 0 et un enregistrement et c'est sur cet sqlcode que le traitement est réalisé !

La valeur de selection générée dans le programme était érronée et donc ne renvoyait aucun enregistrement d'où le traitement erronée également avec le sqlcode = 100 (je croyais que la valeur était correcte et qu'il renvoyait un enregistrement !)

Merci pour ta réponse
Antichoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2006, 21h30   #4
Membre Expert

 
Homme François Durand
Spécialiste Delivery Mainframe IBM
Inscription : octobre 2005
Messages : 1 097
Détails du profil
Informations personnelles :
Nom : Homme François Durand
Âge : 53
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Spécialiste Delivery Mainframe IBM
Secteur : Finance

Informations forums :
Inscription : octobre 2005
Messages : 1 097
Points : 1 706
Points : 1 706
Citation:
Envoyé par Antichoc
Le problème est qu'un traitement sur le SQL code est réalisé après l'exécution.
Certes mais pas dans ce cas précis. Là on est sous SPUFI.

Citation:
En effet, je penses que tu as raison. Le premier sqlcode traite le curseur (donc pas de resultat d'où = 100)

Le second lui renvoi 0 et un enregistrement et c'est sur cet sqlcode que le traitement est réalisé !
Pour moi la requête exécutée sous SPUFI a bien renvoyé une ligne et le SQLCODE à 100 marque la fin du traitement itératif (principe du curseur).
Le second message avec un SQLCODE à 0 porte sur l'exécution du COMMIT par SPUFI, puisque par défaut SPUFI exécute un COMMIT. Ce dernier ne sert à rien dans ce cas précis puisque qu'on a pas fait de mise à jour ici, mais bon l'outil travaille comme cela ...

Citation:
La valeur de selection générée dans le programme était érronée et donc ne renvoyait aucun enregistrement d'où le traitement erronée également avec le sqlcode = 100 (je croyais que la valeur était correcte et qu'il renvoyait un enregistrement !)
C'est très bien de vérifier le SQLCODE dans un programme et c'est très bien d'utiliser SPUFI pour confirmer les résultats du programme ...

Citation:
Merci pour ta réponse
Mais je t'en prie ...
Luc Orient est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h27.


 
 
 
 
Partenaires

Hébergement Web