SQL connexion bd distante. Pb de CCSID

RPG (3 et 4, free), CL, SQL, etc...
Répondre
Jean Roussel
Messages : 8
Enregistré le : jeu. 11 déc. 2008, 11:41:42

SQL connexion bd distante. Pb de CCSID

Message par Jean Roussel »

Bonjour,
Depuis un as400 source, je cherche depuis un pgm en RPG, à accéder via des instructions SQL (CONNECT , DECLARE , FETCH ) à une table d'un 2ème as400 codé en unicode.
J'ai le messagge suivant à l'exécution du programme :
SQL0332 Conversion de caractères entre CCSID 13488 et CCSID 65535 incorrecte

Le pgm a été compilé par CRTSQLRPGI, avec le nom de la BDD distante dans le paramètre RDB

Le job qui exécute le programme a un CCSID 297.

Merci de votre aide

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

(sans texte)

Message par cmasse »

Bonjour,

Quel est le CCSID du PGM (visible par DSPPGM) ?
Christian Massé (Volubis.fr)

Jean Roussel
Messages : 8
Enregistré le : jeu. 11 déc. 2008, 11:41:42

CCSID du pgm

Message par Jean Roussel »

Le CCSID du pgm est 65535

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

CCSID du PGM

Message par cmasse »

Après qq tests, je ne pense pas que ça soit le prb en fait.


J'ai créé une table SQL avec CCSID à 13488 sur une machine V5R40 et un PGM accédant à cette table sur une autre machine (V6R1).

je compile le pgm normalement en renseignant la RDB et ca marche bien. le CCSID du pgm est à 65535 (ce qui doit ne concerner QUE les constantes), par contre mes deux machines sont avec QCCSID à 297 !!!

bref, je n'arrive pas à reproduire (sauf à modifier QCCSID et à faire un IPL, ce qui est un peu compliqué pour un simple test)


Juste deux petites questions pour finir :


-Quelle est la version de l'OS ?
- la variable de réception (INTO :VARIABLE) est-elle déclaré en UNICODE (le type C en GAP) ?

pour infos, le pgm qui fonctionne chez moi

Code : Tout sélectionner

*************  Début des données  *********************
 F1              S             40C                     
 F1short         S             20C                     
 F1local         S             40A                     
/free                                                  
 exec sql                                              
    SELECT F1 into :F1 FROM af4test/unicodeT ;                          
 F1short = F1;                                         
 dsply f1short;                                        
 F1local = %char(F1);                                  
 dsply f1local;                                        
 *inLR=*ON;                                            
/end-free            
Christian Massé (Volubis.fr)

Jean Roussel
Messages : 8
Enregistré le : jeu. 11 déc. 2008, 11:41:42

Pb CCSID

Message par Jean Roussel »

Bonjour,

La machine source est en V5R4, la cible en V6R1

Les constantes du pgm ne sont pas déclarées en unicode, ce qui peut effectivement être la cause du problème.
Je refais des test dans ce sens

Merci

Répondre