En V7R1,
Le code suivant renvoie un status SQLSTT 42828 :
Code : Tout sélectionner
         EXEC SQL
          DECLARE CUR1 CURSOR FOR
            SELECT * FROM TABLE1 A
            LEFT JOIN TABLE2 B ON A.A6IDCPTIND = B.E8IDCPTIND
            LEFT JOIN TABLE3 C ON C.EBIDCOUPLE = B.E8IDCOUPLE
            LEFT JOIN TABLE4 D ON C.EBCOPRODUI = D.A1COPRODUI
            WHERE A.ZONE1 LIKE '123456%'
            AND A.ZONE2 = '9999-12-31'
            AND D.ZONE55 = 'champ1';
         EXEC SQL
         OPEN CUR1;
         EXEC SQL
          FETCH NEXT FROM CUR1;
         dow SqlCode >= 0 and SqlCode < 100;
         EXEC SQL
          UPDATE TABLE1 
          SET ZONE3 = 'AAA'
          WHERE CURRENT OF CUR1;
         EXEC SQL
          FETCH NEXT FROM CUR1;
         EndDo;
         EXEC SQL
          CLOSE CUR1;      Code : Tout sélectionner
         EXEC SQL
          DECLARE CUR1 CURSOR FOR
            SELECT * FROM TABLE1 A
            LEFT JOIN TABLE2 B ON A.A6IDCPTIND = B.E8IDCPTIND
            LEFT JOIN TABLE3 C ON C.EBIDCOUPLE = B.E8IDCOUPLE
            LEFT JOIN TABLE4 D ON C.EBCOPRODUI = D.A1COPRODUI
            WHERE A.ZONE1 LIKE '123456%'
            AND A.ZONE2 = '9999-12-31'
            AND D.ZONE55 = 'champ1'
            [b]WITH NC
            FOR UPDATE OF ZONE3[/b];  Auriez-vous un moyen pour permettre au programme de mettre à jour le poste de la table "principale" lu par le FETCH du Curseur ?
Merci de vos réponses.
Ca a l'air de fonctionner comme voulu en modifiant le curseur comme ci :
Code : Tout sélectionner
            
         EXEC SQL
          DECLARE CUR1 CURSOR FOR
            SELECT * FROM TABLE1 A
             WHERE A.ZONE1 LIKE '123456%'
            AND A.ZONE2 = '9999-12-31'
            AND A.CLE1 IN
                (SELECT AA.CLE1 FROM TABLE1 AA
                 LEFT JOIN TABLE2 B ON AA.A6IDCPTIND = B.E8IDCPTIND
                 LEFT JOIN TABLE3 C ON C.EBIDCOUPLE = B.E8IDCOUPLE
                 LEFT JOIN TABLE4 D ON C.EBCOPRODUI = D.A1COPRODUI
                 WHERE D.ZONE55 = 'champ1')
            WITH NC
            FOR UPDATE OF ZONE3