where-current-of.pgc
text/plain
Filename: where-current-of.pgc
Type: text/plain
Part: 1
#include <stdio.h>
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;
}