#include #include #include #line 1 "cursor.ec" /* exec sql whenever sqlerror sqlprint; */ /* * exec sql whenever sqlerror stop; */ #line 2 "cursor.ec" void runit(char *); main() { /* * exec sql begin declare section; */ #line 8 "cursor.ec" #line 9 "cursor.ec" char *cursor = strdup("A"); /* * exec sql end declare section; */ #line 10 "cursor.ec" /* * exec sql connect to 'test'; */ #line 12 "cursor.ec" { #line 12 "cursor.ec" sqli_connect_open(ESQLINTVERSION, 0, "test", (char *)0, (ifx_conn_t *)0, 0); #line 12 "cursor.ec" { if (SQLCODE < 0) { sqli_stop_whenever(); exit(1);} } #line 12 "cursor.ec" } /* * exec sql declare :cursor cursor for select 1 from dummy where id = 1; */ #line 13 "cursor.ec" { #line 13 "cursor.ec" static const char *sqlcmdtxt[] = #line 13 "cursor.ec" { #line 13 "cursor.ec" "select 1 from dummy where id = 1", 0 }; #line 13 "cursor.ec" #line 13 "cursor.ec" sqli_curs_decl_stat(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cursor, 0), cursor, sqlcmdtxt, (ifx_sqlda_t *)0, (ifx_sqlda_t *)0, 0, (ifx_literal_t *)0, (ifx_namelist_t *)0, 2, 0, 0); #line 13 "cursor.ec" { if (SQLCODE < 0) { sqli_stop_whenever(); exit(1);} } #line 13 "cursor.ec" } runit(cursor); /* * exec sql close :cursor; */ #line 15 "cursor.ec" { #line 15 "cursor.ec" sqli_curs_close(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cursor, 256)); #line 15 "cursor.ec" { if (SQLCODE < 0) { sqli_stop_whenever(); exit(1);} } #line 15 "cursor.ec" } /* * exec sql declare :cursor cursor for select 2 from dummy where id = 1; */ #line 16 "cursor.ec" { #line 16 "cursor.ec" static const char *sqlcmdtxt[] = #line 16 "cursor.ec" { #line 16 "cursor.ec" "select 2 from dummy where id = 1", 0 }; #line 16 "cursor.ec" #line 16 "cursor.ec" sqli_curs_decl_stat(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cursor, 0), cursor, sqlcmdtxt, (ifx_sqlda_t *)0, (ifx_sqlda_t *)0, 0, (ifx_literal_t *)0, (ifx_namelist_t *)0, 2, 0, 0); #line 16 "cursor.ec" { if (SQLCODE < 0) { sqli_stop_whenever(); exit(1);} } #line 16 "cursor.ec" } runit(cursor); /* * exec sql close :cursor; */ #line 18 "cursor.ec" { #line 18 "cursor.ec" sqli_curs_close(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cursor, 256)); #line 18 "cursor.ec" { if (SQLCODE < 0) { sqli_stop_whenever(); exit(1);} } #line 18 "cursor.ec" } /* * exec sql disconnect all; */ #line 19 "cursor.ec" { #line 19 "cursor.ec" sqli_connect_close(2, (char *)0, 0, 0); #line 19 "cursor.ec" { if (SQLCODE < 0) { sqli_stop_whenever(); exit(1);} } #line 19 "cursor.ec" } } void runit(char *name) { /* * exec sql begin declare section; */ #line 24 "cursor.ec" #line 25 "cursor.ec" char *mycursor = name; int i; /* * exec sql end declare section; */ #line 27 "cursor.ec" /* * exec sql open :mycursor; */ #line 29 "cursor.ec" { #line 29 "cursor.ec" sqli_curs_open(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, mycursor, 256), (ifx_sqlda_t *)0, (char *)0, (struct value *)0, 0, 0); #line 29 "cursor.ec" { if (SQLCODE < 0) { sqli_stop_whenever(); exit(1);} } #line 29 "cursor.ec" } /* * exec sql fetch :mycursor into :i; */ #line 30 "cursor.ec" { #line 30 "cursor.ec" static ifx_sqlvar_t _sqobind[] = { { 102, sizeof(i), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, #line 30 "cursor.ec" }; static ifx_sqlda_t _SD0 = { 1, _sqobind, {0}, 1, 0 }; static _FetchSpec _FS1 = { 0, 1, 0 }; #line 30 "cursor.ec" _sqobind[0].sqldata = (char *) &i; sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, mycursor, 256), (ifx_sqlda_t *)0, &_SD0, (char *)0, &_FS1); #line 30 "cursor.ec" { if (SQLCODE < 0) { sqli_stop_whenever(); exit(1);} } #line 30 "cursor.ec" } printf("Found %d\n", i); } #line 32 "cursor.ec"