Lpp*_*Edd 0 sql db2 rpg rpgle ibm-midrange
我想fecth行并在RPG(免费)中更新它们.使用旧式操作码我会这样做:
READE %KDS(KEY) FILE;
processRecord();
UPDATE FILE;
Run Code Online (Sandbox Code Playgroud)
SQL操作码出现问题:
EXEC SQL FETCH MYCURSOR INTO :VAR;
processRecord();
????
Run Code Online (Sandbox Code Playgroud)
使用EXEC SQL UPDATE FILE... SET... WHERE KEY...返回SQLCOD错误.
有特定的技术吗?
通过阅读"RPG IV编程",我找到了答案.
EXEC SQL DECLARE MYCURSOR CURSOR FOR *SELECT STATEMENT* FOR UPDATE OF *FIELDS*;
EXEC SQL OPEN MYCURSOR;
EXEC SQL FETCH MYCURSOS INTO :VARIABLE;
EXEC SQL UPDATE FILE SET *FIELDS* WHERE CURRENT OF MYCURSOR;
EXEC SQL CLOSE MYCURSOR;
Run Code Online (Sandbox Code Playgroud)
就是这样,非常简单!