#include #include #include #include exec sql include ../regression; exec sql whenever sqlerror sqlprint; int main(void) { exec sql begin declare section; int amount[8]; int increment=100; char name[8][8]; char letter[8][1]; char command[128]; exec sql end declare section; int i,j; ECPGdebug(1, stderr); exec sql connect to REGRESSDB1 as main; exec sql create table test (name char(8), amount int, letter char(1)); exec sql commit; /* test handling of embedded quotes in EXECUTE IMMEDIATE "literal" */ exec sql execute immediate "insert into test (name, \042amount\042, letter) values ('db: ''r1''', 1, 'f')"; sprintf(command, "insert into test (name, amount, letter) values ('db: ''r1''', 2, 't')"); exec sql execute immediate :command; sprintf(command, "insert into test (name, amount, letter) select name, amount+10, letter from test"); exec sql execute immediate :command; printf("Inserted %ld tuples via execute immediate\n", sqlca.sqlerrd[2]); sprintf(command, "insert into test (name, amount, letter) select name, amount+$1, letter from test"); exec sql prepare I from :command; exec sql execute I using :increment; printf("Inserted %ld tuples via prepared execute\n", sqlca.sqlerrd[2]); exec sql commit; sprintf (command, "select * from test"); exec sql prepare f from :command; exec sql declare CUR cursor for f; exec sql open CUR; exec sql fetch 8 in CUR into :name, :amount, :letter; for (i=0, j=sqlca.sqlerrd[2]; i