Exemplo n.º 1
0
II_FAR II_CALLBACK II_VOID
serverCallback( II_PTR arg, II_PTR parm )
{
    SVR_PCB		*pcb = (SVR_PCB *)arg;
    IIAPI_GENPARM	*genParm = (IIAPI_GENPARM *)parm;

    if ( global.mode_verbose )  
	printf( "\t\tServer: %s completed\n", pcb->api.name );

    IIdemo_complete_async(); 
    IIdemo_checkError( pcb->api.name, genParm ); 
    pcb->api_status = genParm->gp_status; 
    IIdemo_process_server( pcb );

    return;
}
Exemplo n.º 2
0
static void
IIdemo_query( II_PTR *connHandle, II_PTR *tranHandle, 
	      char *desc, char *queryText )
{
    IIAPI_QUERYPARM	queryParm;
    IIAPI_GETQINFOPARM	getQInfoParm;
    IIAPI_CLOSEPARM	closeParm;
    IIAPI_WAITPARM	waitParm = { -1 };

    printf( "IIdemo_query: %s\n", desc );

    /*
    ** Call IIapi_query to execute statement.
    */
    queryParm.qy_genParm.gp_callback = NULL;
    queryParm.qy_genParm.gp_closure = NULL;
    queryParm.qy_connHandle = *connHandle;
    queryParm.qy_queryType = IIAPI_QT_QUERY;
    queryParm.qy_queryText = queryText;
    queryParm.qy_parameters = FALSE;
    queryParm.qy_tranHandle = *tranHandle;
    queryParm.qy_stmtHandle = NULL;

    IIapi_query( &queryParm );
  
    while( queryParm.qy_genParm.gp_completed == FALSE )
	IIapi_wait( &waitParm );

    if ( queryParm.qy_genParm.gp_status != IIAPI_ST_SUCCESS)
	IIdemo_checkError(& queryParm.qy_genParm);

    /*
    ** Return transaction handle.
    */
    *tranHandle = queryParm.qy_tranHandle;

    /*
    ** Call IIapi_getQueryInfo() to get results.
    */
    getQInfoParm.gq_genParm.gp_callback = NULL;
    getQInfoParm.gq_genParm.gp_closure = NULL;
    getQInfoParm.gq_stmtHandle = queryParm.qy_stmtHandle;

    IIapi_getQueryInfo( &getQInfoParm );

    while( getQInfoParm.gq_genParm.gp_completed == FALSE )
	IIapi_wait( &waitParm );

    if ( getQInfoParm.gq_genParm.gp_status != IIAPI_ST_SUCCESS )
	IIdemo_checkError( &getQInfoParm.gq_genParm );
    else 
	IIdemo_checkQInfo( &getQInfoParm ); 

    /*
    ** Call IIapi_close() to release resources.
    */
    closeParm.cl_genParm.gp_callback = NULL;
    closeParm.cl_genParm.gp_closure = NULL;
    closeParm.cl_stmtHandle = queryParm.qy_stmtHandle;

    IIapi_close( &closeParm );

    while( closeParm.cl_genParm.gp_completed == FALSE )
	IIapi_wait( &waitParm );

    if ( closeParm.cl_genParm.gp_status != IIAPI_ST_SUCCESS )
	IIdemo_checkError(&closeParm.cl_genParm);

    return;
}