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; }
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; }