ibmi-brunch-learn

Announcement

Collapse
No announcement yet.

For Update clause in Cursor

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • For Update clause in Cursor

    I get the error message "FOR UPDATE clause not valid" when i have the following code
    C/EXEC SQL
    C+ DECLARE CURA CURSOR FOR
    C+ SELECT DISTINCT FLD1,FLD2,FLD3 FROM FILE1
    C+ WHERE FLD3='A' AND FLD4 <= :CUR_DATE_8
    C+ FOR UPDATE OF FLD3
    C/END-EXEC
    *
    C/EXEC SQL
    C+ OPEN CURA
    C/END-EXEC
    *
    C/EXEC SQL
    C+ FETCH CURA INTO :FILE1_LOT, :FILE1_PROD, :FILE1_STS
    C/END-EXEC
    *

    C DOW SQLCOD = *ZEROS
    *
    C/EXEC SQL
    C+ UPDATE FILE2 SET FLD5='E' WHERE FLD5='A' AND FLD1 = :FILE1_LOT AND
    C+ FLD2 = :FILE1_PROD
    C/END-EXEC
    *
    C/EXEC SQL
    C+ UPDATE FILE1 SET FLD3='E' WHERE CURRENT OF CURA
    C/END-EXEC
    *
    C/EXEC SQL
    C+ FETCH CURA INTO :FILE1_LOT, :FILE1_PROD, :FILE1_STS
    C/END-EXEC
    *
    C END
    *
    C/EXEC SQL
    C+ CLOSE CURA
    C/END-EXEC

    I get the error in the declare statement. Please let me know what would be the cause?

  • #2
    Re: For Update clause in Cursor

    An SQL Statement with DISTINCT is not Updateable, that's why you get the error.

    Birgitta

    Comment


    • #3
      Re: For Update clause in Cursor

      I guess it, thanks for confirming!

      Comment

      Working...
      X