IIAPI_STATUS IIdemo_init_server( II_PTR env, char *dbname, II_BOOL verbose ) { IIAPI_SETENVPRMPARM setEnvPrmParm; IIAPI_STATUS status; /* ** Set the callback function for uncaught Database Events. */ setEnvPrmParm.se_envHandle = env; setEnvPrmParm.se_paramID = IIAPI_EP_EVENT_FUNC; setEnvPrmParm.se_paramValue = (void *)eventCallback; if ( verbose ) printf( "\t\tCalling IIapi_setEnvParam()\n" ); IIapi_setEnvParam( &setEnvPrmParm); if ( setEnvPrmParm.se_status != IIAPI_ST_SUCCESS ) return( setEnvPrmParm.se_status ); printf( "\tEstablishing Connection \n"); status = IIdemo_conn( env, dbname, &global.svr_connHandle, verbose ); if ( status == IIAPI_ST_SUCCESS ) { status = IIdemo_autocommit( &global.svr_connHandle, &global.svr_tranHandle, verbose ); if ( status == IIAPI_ST_SUCCESS ) { char creEvText[] = "create dbevent %s"; char regEvText[] = "register dbevent %s"; char queryText[512]; printf( "\tCreating DB Event \n"); sprintf( queryText, creEvText, IIdemo_eventName ); IIdemo_query( &global.svr_connHandle, &global.svr_tranHandle, queryText, verbose ); printf( "\tRegistering for DB Event \n"); sprintf( queryText, regEvText, IIdemo_eventName ); status = IIdemo_query( &global.svr_connHandle, &global.svr_tranHandle, queryText, verbose ); } if ( status != IIAPI_ST_SUCCESS ) IIdemo_abort( &global.svr_connHandle, verbose ); } return( status ); }
int main( int argc, char** argv ) { II_PTR envHandle = (II_PTR)NULL; IIAPI_INITPARM initParm; IIAPI_SETENVPRMPARM setEnvPrmParm; IIAPI_RELENVPARM relEnvParm; IIAPI_TERMPARM termParm; II_LONG longvalue; /* ** Initialize API at level 1 */ printf( "apisinit: initializing API at level 1 \n" ); initParm.in_version = IIAPI_VERSION_1; initParm.in_timeout = -1; IIapi_initialize( &initParm ); /* ** Terminate API */ printf( "apisinit: shutting down API\n" ); IIapi_terminate( &termParm ); /* ** Initialize API at level 2. Save environment handle. */ printf( "apisinit: initializing API at level 2 \n" ); initParm.in_version = IIAPI_VERSION_2; initParm.in_timeout = -1; IIapi_initialize( &initParm ); envHandle = initParm.in_envHandle; /* ** Set an environment parameter */ printf( "apisinit: set environment parameter\n" ); setEnvPrmParm.se_envHandle = envHandle; setEnvPrmParm.se_paramID = IIAPI_EP_DATE_FORMAT; setEnvPrmParm.se_paramValue = (II_PTR)&longvalue; longvalue = IIAPI_EPV_DFRMT_YMD; IIapi_setEnvParam( &setEnvPrmParm ); /* ** Release environment resources. */ printf( "apisinit: releasing environment handle\n" ); relEnvParm.re_envHandle = envHandle; IIapi_releaseEnv(&relEnvParm); /* ** Terminate API. */ printf( "apisinit: shutting down API\n" ); IIapi_terminate( &termParm ); return( 0 ); }
STATUS gcd_api_init( u_i2 api_ver, PTR *env ) { IIAPI_INITPARM init; IIAPI_SETENVPRMPARM set; bool done; STATUS status = OK; init.in_timeout = -1; init.in_version = api_ver; IIapi_initialize( &init ); if ( init.in_status != IIAPI_ST_SUCCESS && GCD_global.gcd_trace_level >= 1 ) TRdisplay( "%4d GCD Error initializing API: %s\n", -1, gcu_lookup( apiMap, init.in_status ) ); switch( init.in_status ) { case IIAPI_ST_SUCCESS : *env = init.in_envHandle; break; case IIAPI_ST_OUT_OF_MEMORY : status = E_GC4808_NO_MEMORY; break; default : status = E_GC4809_INTERNAL_ERROR; break; } for( done = (status != OK); ! done; done = TRUE ) { II_LONG value; set.se_envHandle = *env; set.se_paramID = IIAPI_EP_TRACE_FUNC; set.se_paramValue = (II_PTR)gcd_api_trace; IIapi_setEnvParam( &set ); if ( (status = set.se_status) != OK ) break; if( api_ver >= IIAPI_VERSION_6 ) { set.se_paramID = IIAPI_EP_DATE_ALIAS; set.se_paramValue = IIAPI_EPV_INGDATE; IIapi_setEnvParam( &set ); if ( (status = set.se_status) != OK ) break; } set.se_paramID = IIAPI_EP_DATE_FORMAT; value = IIAPI_EPV_DFRMT_FINNISH; set.se_paramValue = (II_PTR)&value; IIapi_setEnvParam( &set ); if ( (status = set.se_status) != OK ) break; set.se_paramID = IIAPI_EP_TIMEZONE; set.se_paramValue = "gmt"; IIapi_setEnvParam( &set ); if ( (status = set.se_status) != OK ) break; set.se_paramID = IIAPI_EP_MAX_SEGMENT_LEN; value = 8192; set.se_paramValue = (II_PTR)&value; IIapi_setEnvParam( &set ); if ( (status = set.se_status) != OK ) break; set.se_paramID = IIAPI_EP_DECIMAL_CHAR; set.se_paramValue = "."; IIapi_setEnvParam( &set ); if ( (status = set.se_status) != OK ) break; set.se_paramID = IIAPI_EP_MONEY_SIGN ; set.se_paramValue = "$"; IIapi_setEnvParam( &set ); if ( (status = set.se_status) != OK ) break; set.se_paramID = IIAPI_EP_MONEY_LORT ; value = IIAPI_EPV_MONEY_LEAD_SIGN; set.se_paramValue = (II_PTR)&value; IIapi_setEnvParam( &set ); if ( (status = set.se_status) != OK ) break; set.se_paramID = IIAPI_EP_MONEY_PRECISION ; value = 2; set.se_paramValue = (II_PTR)&value; IIapi_setEnvParam( &set ); if ( (status = set.se_status) != OK ) break; } if ( status != OK ) gcu_erlog( 0, GCD_global.language, status, NULL, 0, NULL ); return( status ); }