exec sql whenever sqlerror sqlprint; exec sql include sqlca; /* comment */ exec sql define AMOUNT 4; exec sql type intarray is int[AMOUNT]; exec sql type string is char(8); typedef int intarray[AMOUNT]; int main () { exec sql begin declare section; intarray amount; int increment=100; char name[AMOUNT][8]; char letter[AMOUNT][1]; char command[128]; exec sql end declare section; exec sql var name is string(AMOUNT); char msg[128]; FILE *dbgs; int i,j; if ((dbgs = fopen("log", "w")) != NULL) ECPGdebug(1, dbgs); strcpy(msg, "connect"); exec sql connect to mm as main; strcpy(msg, "connect"); exec sql connect to pm; strcpy(msg, "create"); exec sql at main create table test(name char(8), amount int, letter char(1)); exec sql create table test(name char(8), amount int, letter char(1)); strcpy(msg, "commit"); exec sql at main commit; exec sql commit; strcpy(msg, "set connection"); exec sql set connection to main; strcpy(msg, "execute insert 1"); sprintf(command, "insert into test(name, amount, letter) values ('db: ''mm''', 1, 'f')"); exec sql execute immediate :command; sprintf(command, "insert into test(name, amount, letter) values ('db: ''mm''', 2, 't')"); exec sql execute immediate :command; strcpy(msg, "execute insert 2"); sprintf(command, "insert into test(name, amount, letter) values ('db: ''pm''', 1, 'f')"); exec sql at pm execute immediate :command; strcpy(msg, "execute insert 3"); sprintf(command, "insert into test(name, amount, letter) select name, amount+10, letter from test"); exec sql execute immediate :command; printf("Inserted %d tuples via execute immediate\n", sqlca.sqlerrd[2]); strcpy(msg, "execute insert 4"); sprintf(command, "insert into test(name, amount, letter) select name, amount+?, letter from test"); exec sql prepare I from :command; exec sql at pm execute I using :increment; printf("Inserted %d tuples via prepared execute\n", sqlca.sqlerrd[2]); strcpy(msg, "commit"); exec sql commit; /* Stop automatic transactioning for connection pm. */ exec sql at pm set autocommit to off; strcpy(msg, "select"); exec sql select name, amount, letter into :name, :amount, :letter from test; for (i=0, j=sqlca.sqlerrd[2]; i