#include <ecpglib.h>#include <ecpgerrno.h>#include <sqlca.h>#include <stdio.h>
Go to the source code of this file.
Data Structures | |
| struct | sqlca_t |
Defines | |
| #define | ECPGdebug(X, Y) ECPGdebug((X)+100,(Y)) |
| #define | PGDLLIMPORT |
| #define | SQLERRMC_LEN 150 |
| #define | sqlca (*ECPGget_sqlca()) |
Functions | |
| struct sqlca_t * | ECPGget_sqlca (void) |
| int | main () |
| #define ECPGdebug | ( | X, | ||
| Y | ||||
| ) | ECPGdebug((X)+100,(Y)) |
Definition at line 7 of file sql-indicators.c.
| #define PGDLLIMPORT |
Definition at line 21 of file sql-indicators.c.
| #define sqlca (*ECPGget_sqlca()) |
Definition at line 72 of file sql-indicators.c.
| #define SQLERRMC_LEN 150 |
Definition at line 25 of file sql-indicators.c.
| struct sqlca_t* ECPGget_sqlca | ( | void | ) | [read] |
Definition at line 135 of file misc.c.
{
#ifdef ENABLE_THREAD_SAFETY
struct sqlca_t *sqlca;
pthread_once(&sqlca_key_once, ecpg_sqlca_key_init);
sqlca = pthread_getspecific(sqlca_key);
if (sqlca == NULL)
{
sqlca = malloc(sizeof(struct sqlca_t));
ecpg_init_sqlca(sqlca);
pthread_setspecific(sqlca_key, sqlca);
}
return (sqlca);
#else
return (&sqlca);
#endif
}
| int main | ( | void | ) |
Definition at line 94 of file sql-indicators.c.
References ECPGconnect(), ECPGdebug, ECPGdisconnect(), ECPGdo(), ECPGsetcommit(), ECPGst_normal, ECPGt_EOIT, ECPGt_EORT, ECPGt_int, ECPGt_NO_INDICATOR, ECPGtrans(), and NULL.
{
/* exec sql begin declare section */
#line 9 "indicators.pgc"
int intvar = 5 ;
#line 10 "indicators.pgc"
int nullind = - 1 ;
/* exec sql end declare section */
#line 11 "indicators.pgc"
ECPGdebug(1,stderr);
{ ECPGconnect(__LINE__, 0, "regress1" , NULL, NULL , NULL, 0); }
#line 15 "indicators.pgc"
{ ECPGsetcommit(__LINE__, "off", NULL);}
#line 16 "indicators.pgc"
{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "create table indicator_test ( \"id\" int primary key , \"str\" text not null , val int null )", ECPGt_EOIT, ECPGt_EORT);}
#line 21 "indicators.pgc"
{ ECPGtrans(__LINE__, NULL, "commit work");}
#line 22 "indicators.pgc"
{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into indicator_test ( id , str , val ) values ( 1 , 'Hello' , 0 )", ECPGt_EOIT, ECPGt_EORT);}
#line 24 "indicators.pgc"
/* use indicator in insert */
{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into indicator_test ( id , str , val ) values ( 2 , 'Hi there' , $1 )",
ECPGt_int,&(intvar),(long)1,(long)1,sizeof(int),
ECPGt_int,&(nullind),(long)1,(long)1,sizeof(int), ECPGt_EOIT, ECPGt_EORT);}
#line 27 "indicators.pgc"
nullind = 0;
{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into indicator_test ( id , str , val ) values ( 3 , 'Good evening' , $1 )",
ECPGt_int,&(intvar),(long)1,(long)1,sizeof(int),
ECPGt_int,&(nullind),(long)1,(long)1,sizeof(int), ECPGt_EOIT, ECPGt_EORT);}
#line 29 "indicators.pgc"
{ ECPGtrans(__LINE__, NULL, "commit work");}
#line 30 "indicators.pgc"
/* use indicators to get information about selects */
{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select val from indicator_test where id = 1", ECPGt_EOIT,
ECPGt_int,&(intvar),(long)1,(long)1,sizeof(int),
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
#line 33 "indicators.pgc"
{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select val from indicator_test where id = 2", ECPGt_EOIT,
ECPGt_int,&(intvar),(long)1,(long)1,sizeof(int),
ECPGt_int,&(nullind),(long)1,(long)1,sizeof(int), ECPGt_EORT);}
#line 34 "indicators.pgc"
printf("intvar: %d, nullind: %d\n", intvar, nullind);
{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select val from indicator_test where id = 3", ECPGt_EOIT,
ECPGt_int,&(intvar),(long)1,(long)1,sizeof(int),
ECPGt_int,&(nullind),(long)1,(long)1,sizeof(int), ECPGt_EORT);}
#line 36 "indicators.pgc"
printf("intvar: %d, nullind: %d\n", intvar, nullind);
/* use indicators for update */
intvar = 5; nullind = -1;
{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "update indicator_test set val = $1 where id = 1",
ECPGt_int,&(intvar),(long)1,(long)1,sizeof(int),
ECPGt_int,&(nullind),(long)1,(long)1,sizeof(int), ECPGt_EOIT, ECPGt_EORT);}
#line 41 "indicators.pgc"
{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select val from indicator_test where id = 1", ECPGt_EOIT,
ECPGt_int,&(intvar),(long)1,(long)1,sizeof(int),
ECPGt_int,&(nullind),(long)1,(long)1,sizeof(int), ECPGt_EORT);}
#line 42 "indicators.pgc"
printf("intvar: %d, nullind: %d\n", intvar, nullind);
{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "drop table indicator_test", ECPGt_EOIT, ECPGt_EORT);}
#line 45 "indicators.pgc"
{ ECPGtrans(__LINE__, NULL, "commit work");}
#line 46 "indicators.pgc"
{ ECPGdisconnect(__LINE__, "CURRENT");}
#line 48 "indicators.pgc"
return 0;
}
1.7.1