AMPS:数据库访问模块源码解读 (五)
{
TRACE(DBE_TRACE_ID(r_pvAMPSContext), AMPS_TRACE_LEVEL_ERROR, "Invalid DB Type %d.\n", r_oAMPSDBType);
return NULL;
}
//TRACE( DBE_TRACE_ID(r_pvAMPSContext), AMPS_TRACE_LEVEL_INFO, "Leaving.\n");
return poBDEngineContext;
}
/*****************************************************************
函数名称: DBEngine_Cleanup
功能描述: 数据库访问完成后的资源销毁函数
入参::
void* r_pvAMPSContext APMS应用上下文
void* r_pvBDEngineContext 数据库访问句柄
出参:
返回值:
void
*****************************************************************/
void DBEngine_Cleanup(void* r_pvAMPSContext, void* r_pvBDEngineContext)
{
t_BDEngineContext* poBDEngineContext = r_pvBDEngineContext;
//TRACE( DBE_TRACE_ID(r_pvAMPSContext), AMPS_TRACE_LEVEL_INFO, "Entering.\n");
/*根据不同数据库类型进行数据库关闭等清理操作*/
if(AMPS_DB_TYPE_MYSQL == poBDEngineContext->oAMPSDBType)
{
MySQL_Cleanup(r_pvAMPSContext, poBDEngineContext);
}
else
if(AMPS_DB_TYPE_ORACLE == poBDEngineContext->oAMPSDBType)
{
Oracle_Cleanup(r_pvAMPSContext, poBDEngineContext);
}
AMPS_InternalFree(r_pvBDEngineContext);
//TRACE( DBE_TRACE_ID(r_pvAMPSContext), AMPS_TRACE_LEVEL_INFO, "Leaving.\n");
}
/*****************************************************************
函数名称: DBEngine_Query
功能描述: 数据库操作语句执行函数
入参::
void* r_pvAMPSContext APMS应用上下文
void* r_pvBDEngineContext 数据库访问句柄
char* r_pcchQueryStatement 需要执行的SQL语句
unsigned long r_ulLengthOfQuery SQL语句长度
t_AMPSDBEngineResult* r_poBDEngineResult 查询完成后的结果集
出参:
t_AMPSDBEngineResult* r_poBDEngineResult 查询完成后的结果集
返回值:
int
*****************************************************************/
int DBEngine_Query(void* r_pvAMPSContext, void* r_pvBDEngineContext, const char* r_pcchQueryStatement, unsigned long r_ulLengthOfQuery, t_AMPSDBEngineResult* r_poBDEngineResult)
{
t_BDEngineContext* poBDEngineContext = r_pvBDEngineContext;
//TRACE( DBE_TRACE_ID(r_pvAMPSContext), AMPS_TRACE_LEVEL_INFO, "Entering.\n");
/*按不同数据库类型进行SQL语句的执行*/
if(AMPS_DB_TYPE_MYSQL == poBDEngineContext->oAMPSDBType)
{
MySQL_Query(r_pvAMPSContext, r_pvBDEngineContext, r_pcchQueryStatement, r_ulLengthOfQuery, r_poBDEngineResult);
}
else
if(AMPS_DB_TYPE_ORACLE == poBDEngineContext->oAMPSDBType)
{
Oracle_Query(r_pvAMPSContext, r_pvBDEngineContext, r_pcchQueryStatement, r_ulLengthOfQuery, r_poBDEngineResult);
}
//TRACE( DBE_TRACE_ID(r_pvAMPSContext), AMPS_TRACE_LEVEL_INFO, "Leaving.\n");
return AMPS_SUCCESS;
}
/*****************************************************************
函数名称: DBEngine_FreeResults
功能描述: 数据库操作语句执行完成后的资源释放函数
入参::
void* r_pvAMPSContext APMS应用上下文
void* r_pvBDEngineContext 数据库访问句柄
t_AMPSDBEngineResult* r_poBDEngineResult 查询完成后的结果集
出参:
返回值:
int