Exemplo n.º 1
0
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 );
}
Exemplo n.º 2
0
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 );
}
Exemplo n.º 3
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 );
}