| /* Processed by ecpg (regression mode) */ |
| /* These include files are added by the preprocessor */ |
| #include <ecpglib.h> |
| #include <ecpgerrno.h> |
| #include <sqlca.h> |
| /* End of automatic include section */ |
| #define ECPGdebug(X,Y) ECPGdebug((X)+100,(Y)) |
| |
| #line 1 "autoprep.pgc" |
| #include <stdio.h> |
| #include <stdlib.h> |
| #include <string.h> |
| |
| /* test automatic prepare for all statements */ |
| |
| #line 1 "regression.h" |
| |
| |
| |
| |
| |
| |
| #line 6 "autoprep.pgc" |
| |
| |
| static void test(void) { |
| /* exec sql begin declare section */ |
| |
| |
| |
| |
| #line 10 "autoprep.pgc" |
| int item [ 4 ] , ind [ 4 ] , i = 1 ; |
| |
| #line 11 "autoprep.pgc" |
| int item1 , ind1 ; |
| |
| #line 12 "autoprep.pgc" |
| char sqlstr [ 64 ] = "SELECT item2 FROM T ORDER BY item2 NULLS LAST" ; |
| /* exec sql end declare section */ |
| #line 13 "autoprep.pgc" |
| |
| |
| ECPGdebug(1, stderr); |
| { ECPGconnect(__LINE__, 0, "ecpg1_regression" , NULL, NULL , NULL, 0); } |
| #line 16 "autoprep.pgc" |
| |
| |
| /* exec sql whenever sql_warning sqlprint ; */ |
| #line 18 "autoprep.pgc" |
| |
| /* exec sql whenever sqlerror sqlprint ; */ |
| #line 19 "autoprep.pgc" |
| |
| |
| { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "create table T ( Item1 int , Item2 int )", ECPGt_EOIT, ECPGt_EORT); |
| #line 21 "autoprep.pgc" |
| |
| if (sqlca.sqlwarn[0] == 'W') sqlprint(); |
| #line 21 "autoprep.pgc" |
| |
| if (sqlca.sqlcode < 0) sqlprint();} |
| #line 21 "autoprep.pgc" |
| |
| |
| { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_prepnormal, "insert into T values ( 1 , null )", ECPGt_EOIT, ECPGt_EORT); |
| #line 23 "autoprep.pgc" |
| |
| if (sqlca.sqlwarn[0] == 'W') sqlprint(); |
| #line 23 "autoprep.pgc" |
| |
| if (sqlca.sqlcode < 0) sqlprint();} |
| #line 23 "autoprep.pgc" |
| |
| { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_prepnormal, "insert into T values ( 1 , $1 )", |
| ECPGt_int,&(i),(long)1,(long)1,sizeof(int), |
| ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT); |
| #line 24 "autoprep.pgc" |
| |
| if (sqlca.sqlwarn[0] == 'W') sqlprint(); |
| #line 24 "autoprep.pgc" |
| |
| if (sqlca.sqlcode < 0) sqlprint();} |
| #line 24 "autoprep.pgc" |
| |
| i++; |
| { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_prepnormal, "insert into T values ( 1 , $1 )", |
| ECPGt_int,&(i),(long)1,(long)1,sizeof(int), |
| ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT); |
| #line 26 "autoprep.pgc" |
| |
| if (sqlca.sqlwarn[0] == 'W') sqlprint(); |
| #line 26 "autoprep.pgc" |
| |
| if (sqlca.sqlcode < 0) sqlprint();} |
| #line 26 "autoprep.pgc" |
| |
| { ECPGprepare(__LINE__, NULL, 0, "i", " insert into T values ( 1 , 2 ) "); |
| #line 27 "autoprep.pgc" |
| |
| if (sqlca.sqlwarn[0] == 'W') sqlprint(); |
| #line 27 "autoprep.pgc" |
| |
| if (sqlca.sqlcode < 0) sqlprint();} |
| #line 27 "autoprep.pgc" |
| |
| { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_execute, "i", ECPGt_EOIT, ECPGt_EORT); |
| #line 28 "autoprep.pgc" |
| |
| if (sqlca.sqlwarn[0] == 'W') sqlprint(); |
| #line 28 "autoprep.pgc" |
| |
| if (sqlca.sqlcode < 0) sqlprint();} |
| #line 28 "autoprep.pgc" |
| |
| |
| { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_prepnormal, "select Item2 from T order by Item2 nulls last", ECPGt_EOIT, |
| ECPGt_int,(item),(long)1,(long)4,sizeof(int), |
| ECPGt_int,(ind),(long)1,(long)4,sizeof(int), ECPGt_EORT); |
| #line 30 "autoprep.pgc" |
| |
| if (sqlca.sqlwarn[0] == 'W') sqlprint(); |
| #line 30 "autoprep.pgc" |
| |
| if (sqlca.sqlcode < 0) sqlprint();} |
| #line 30 "autoprep.pgc" |
| |
| |
| for (i=0; i<4; i++) |
| printf("item[%d] = %d\n", i, ind[i] ? -1 : item[i]); |
| |
| /* declare C cursor for select Item1 from T */ |
| #line 35 "autoprep.pgc" |
| |
| |
| { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "declare C cursor for select Item1 from T", ECPGt_EOIT, ECPGt_EORT); |
| #line 37 "autoprep.pgc" |
| |
| if (sqlca.sqlwarn[0] == 'W') sqlprint(); |
| #line 37 "autoprep.pgc" |
| |
| if (sqlca.sqlcode < 0) sqlprint();} |
| #line 37 "autoprep.pgc" |
| |
| |
| { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "fetch 1 in C", ECPGt_EOIT, |
| ECPGt_int,&(i),(long)1,(long)1,sizeof(int), |
| ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT); |
| #line 39 "autoprep.pgc" |
| |
| if (sqlca.sqlwarn[0] == 'W') sqlprint(); |
| #line 39 "autoprep.pgc" |
| |
| if (sqlca.sqlcode < 0) sqlprint();} |
| #line 39 "autoprep.pgc" |
| |
| printf("i = %d\n", i); |
| |
| { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "close C", ECPGt_EOIT, ECPGt_EORT); |
| #line 42 "autoprep.pgc" |
| |
| if (sqlca.sqlwarn[0] == 'W') sqlprint(); |
| #line 42 "autoprep.pgc" |
| |
| if (sqlca.sqlcode < 0) sqlprint();} |
| #line 42 "autoprep.pgc" |
| |
| |
| { ECPGprepare(__LINE__, NULL, 0, "stmt1", sqlstr); |
| #line 44 "autoprep.pgc" |
| |
| if (sqlca.sqlwarn[0] == 'W') sqlprint(); |
| #line 44 "autoprep.pgc" |
| |
| if (sqlca.sqlcode < 0) sqlprint();} |
| #line 44 "autoprep.pgc" |
| |
| |
| /* declare cur1 cursor for $1 */ |
| #line 46 "autoprep.pgc" |
| |
| |
| { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "declare cur1 cursor for $1", |
| ECPGt_char_variable,(ECPGprepared_statement(NULL, "stmt1", __LINE__)),(long)1,(long)1,(1)*sizeof(char), |
| ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT); |
| #line 48 "autoprep.pgc" |
| |
| if (sqlca.sqlwarn[0] == 'W') sqlprint(); |
| #line 48 "autoprep.pgc" |
| |
| if (sqlca.sqlcode < 0) sqlprint();} |
| #line 48 "autoprep.pgc" |
| |
| |
| /* exec sql whenever not found break ; */ |
| #line 50 "autoprep.pgc" |
| |
| |
| i = 0; |
| while (i < 100) |
| { |
| { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "fetch cur1", ECPGt_EOIT, |
| ECPGt_int,&(item1),(long)1,(long)1,sizeof(int), |
| ECPGt_int,&(ind1),(long)1,(long)1,sizeof(int), ECPGt_EORT); |
| #line 55 "autoprep.pgc" |
| |
| if (sqlca.sqlcode == ECPG_NOT_FOUND) break; |
| #line 55 "autoprep.pgc" |
| |
| if (sqlca.sqlwarn[0] == 'W') sqlprint(); |
| #line 55 "autoprep.pgc" |
| |
| if (sqlca.sqlcode < 0) sqlprint();} |
| #line 55 "autoprep.pgc" |
| |
| printf("item[%d] = %d\n", i, ind1 ? -1 : item1); |
| i++; |
| } |
| |
| { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "close cur1", ECPGt_EOIT, ECPGt_EORT); |
| #line 60 "autoprep.pgc" |
| |
| if (sqlca.sqlwarn[0] == 'W') sqlprint(); |
| #line 60 "autoprep.pgc" |
| |
| if (sqlca.sqlcode < 0) sqlprint();} |
| #line 60 "autoprep.pgc" |
| |
| |
| { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "drop table T", ECPGt_EOIT, ECPGt_EORT); |
| #line 62 "autoprep.pgc" |
| |
| if (sqlca.sqlwarn[0] == 'W') sqlprint(); |
| #line 62 "autoprep.pgc" |
| |
| if (sqlca.sqlcode < 0) sqlprint();} |
| #line 62 "autoprep.pgc" |
| |
| |
| { ECPGdisconnect(__LINE__, "ALL"); |
| #line 64 "autoprep.pgc" |
| |
| if (sqlca.sqlwarn[0] == 'W') sqlprint(); |
| #line 64 "autoprep.pgc" |
| |
| if (sqlca.sqlcode < 0) sqlprint();} |
| #line 64 "autoprep.pgc" |
| |
| } |
| |
| int main() { |
| test(); |
| test(); /* retry */ |
| |
| return 0; |
| } |