Bonjour,

Je suis actuellement en train de travailler sur un programme CobolSQL sous AS/400, qui prend des données d'un fichiers et les place dans un autre fichier (jusque la tout va bien)

La ou tout se complique est lorsqu'en plus des données (normales) il m'a fallu insérer dans le fichier "résultat" une clef unique : un code pays suivi d'un numéro incrémenté au fur et a mesure.

J'ai découvert alors l'utilisation des séquences, qui répond à mon attente.

sous STRSQL, j'arrive à créer ma séquence, l'utiliser, etc.

Mais dans le SQLCBL, ma requête de création de séquence sort en erreur et fait planter mon programme :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
MOVE SPACE TO W-REQUETE-SQL                  
STRING                                       
"CREATE SEQUENCE SEQSWIFT "                 
"AS INTEGER "                               
" START WITH "                              
WW-COMPTAGE-debut     (cette donnée est à 01)                      
" INCREMENT BY 1 "                          
"NO MINVALUE "                              
"MAXVALUE 999999 "                           
"NO CYCLE "                                             
"CACHE 50 "                                             
"ORDER "                               DELIMITED BY SIZE
INTO W-REQUETE-SQL.                                    
EXEC SQL                                                 
   EXECUTE IMMEDIATE :W-REQUETE-SQL                      
END-EXEC.
Si je copie la string ainsi définie telle quelle dans STRSQL la séquence se crée, mais pas dans le programme.

J'ai cherché sur le net le code erreur (-7017 si je ne me suis pas trompé) et l'explication ne m'est pas très utile...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Explanation: Commitment control is already active to a DDM target.
Est ce que quelqu'un a déjà utilisé cette fonction dans un programme?

Merci d'avance,

P.S.
Je ne sais pas exactement ou placer ce post, parce qu'il pourrait se promener entre DB2, AS400... Prière de le déplacer en cas de besoin.