#include int main(void) { EXEC SQL BEGIN DECLARE SECTION; char *curname = "mycur"; int id, one = 1, two = 2, id1, id2; char *new_t = "updated"; char t[64]; EXEC SQL END DECLARE SECTION; EXEC SQL WHENEVER SQLERROR SQLPRINT; EXEC SQL CONNECT TO zozo; EXEC SQL DECLARE :curname CURSOR FOR SELECT id, t FROM t1; EXEC SQL OPEN :curname; while (sqlca.sqlcode == 0) { EXEC SQL FETCH FROM :curname INTO :id, :t; if (sqlca.sqlcode != 0) break; EXEC SQL UPDATE t1 SET t = :new_t WHERE CURRENT OF :curname RETURNING id + :one INTO :id1; EXEC SQL DELETE FROM t1 WHERE CURRENT OF :curname RETURNING id + :two INTO :id2; printf("%d %d %d '%s'\n", id, id1, id2, t); } EXEC SQL CLOSE :curname; EXEC SQL DISCONNECT ALL; return 0; }