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 19/12/2006, 11h00   #1
Invité de passage
 
Inscription : décembre 2006
Messages : 5
Détails du profil
Informations personnelles :
Âge : 32
Localisation : Belgique

Informations forums :
Inscription : décembre 2006
Messages : 5
Points : 4
Points : 4
Envoyer un message via MSN à axine
Par défaut [AS400-SQLRPGLE] Comment écrire un SELECT dynamique

Bonjour,

Je dois récupérer une valeur via un écran (DSPF) pour la passer en paramètre dans le WHERE de mon instruction SQL. J'utilise FETCH pour récupérer tous les enregistrements qui satisfont la condition et je les insère dans une revue (SUBFILE).

Lorsque j'exécute mon programme, la revue est toujours vide et je remarque que le code SQCLCOD est toujours égal à -420.

J'ai consulté le manuel des codes & messages SQL, qui me précise que le code -420 = "THE VALUE OF A CHARACTER STRING ARGUMENT WAS NOT ACCEPTABLE TO THE function-name FUNCTION".
Je n'ai pas trouvé où se situe l'erreur car je suis novice en SQL
J'espère que quelqu'un pourra m'aider et je l'en remercie d'avance

Voici le code que j'ai écrit :
(Parmi les zones après le SELECT, certaines sont alphanumériques et certaines sont numériques, je ne sais si ça peut poser problème).

C EVAL SqlString =
C 'SELECT GTCUSR, GTCSS, GTCDAT, GTCCDE, ' +
C 'GTCSCD, GTCTIM, GTCSGE, GTCLTU, GTCLTC, ' +
C 'GTCLTU ' +
C 'FROM TSTDTA/GTC ' +
C 'WHERE GTCUSR = ? ' +
C 'ORDER BY GTCSS DESC, GTCDAT DESC, ' +
C 'GTCCDE'
C*
C/Exec Sql
C+ PREPARE SqlStmt FROM :SqlString
C/End-exec
C*
C/Exec Sql
C+ DECLARE CURSORGTC CURSOR FOR SqlStmt
C/End-exec
C*
C/Exec Sql
C+ OPEN CURSORGTC USING :S1USR
C/End-exec
C/Exec Sql

C/Exec Sql
C+ FETCH NEXT FROM CURSORGTC
C+ INTO :GTCUSR, :GTCSS, :GTCDAT,
C+ :GTCCDE, :GTCSCD, :GTCTIM, :GTCSGE,
C+ :GTCLTU, :GTCLTC, :GTCLTD
C/End-Exec

C/Exec Sql
C+ FETCH NEXT FROM CURSORGTC
C+ INTO :GTCUSR, :GTCSS, :GTCDAT,
C+ :GTCCDE, :GTCSCD, :GTCTIM, :GTCSGE,
C+ :GTCLTU, :GTCLTC, :GTCLTD
C/End-Exec
axine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2006, 17h25   #2
Membre Expert
 
Inscription : novembre 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 1 298
Points : 1 355
Points : 1 355
Par défaut Comment cela a t il été résolu ?

Puisque résolu, en quoi a consisté la solution ?
Mercure est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2006, 09h39   #3
Invité de passage
 
Inscription : décembre 2006
Messages : 5
Détails du profil
Informations personnelles :
Âge : 32
Localisation : Belgique

Informations forums :
Inscription : décembre 2006
Messages : 5
Points : 4
Points : 4
Envoyer un message via MSN à axine
2 fois la même colonne dans le SELECT, pff

C 'SELECT GTCUSR, GTCSS, GTCDAT, GTCCDE, ' +
C 'GTCSCD, GTCTIM, GTCSGE, GTCLTU, GTCLTC, ' +
C 'GTCLTU ' +
axine 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 15h45.


 
 
 
 
Partenaires

Hébergement Web