我在A、B机器上使用同一个工程test.dsp,其中在A、B机器上连接ORACLE数据库都成功,但是在执行同一个函数的时候遇到了问题:
在A机器上,执行数据库操作函数可以返回相应的数据,并成功;在B机器上执行函数的时候却不成功,出现异常情况(catch里面)。并A、B机器连接的数据库都是同一个数据库。执行的函数如下:
void GetAA(TrunkInfo * pinfo){
char callee[26];
char caller[26];
char m_path[100];
char strSQL[200];
memset(strSQL,0,200);
memset(m_path,0,100);
int id = -1;
sprintf(caller,"%s",pinfo->CallerID.Caller_in);
sprintf(callee,&pinfo->CalleeID.Callee_in[4],7);
sprintf(callee,"%s",callee);
strcpy(strSQL,"Select * From Table(Select Cast(FUN_NEWCRBT('");
strcat(strSQL,callee);
strcat(strSQL,"','");
strcat(strSQL,caller);
strcat(strSQL,"') as CRBT) from dual)");
//说明:一旦返回的语音路径为空时,Oracle将以错误处理,实际数据库连接完好,所以不能以这个为断开依据20050128
try{
m_ado->ExcuteQuery(strSQL);
id = m_ado->GetInt("ID");
m_ado->GetString("RINGPATH",m_path);
}catch (_com_error e)//异常处理 //7月
{
strcpy(pinfo->PlayFile1,"");
pinfo->FileID = -1; //语音id//借用字段
pinfo->state=TRUNK_ENDQUEDB;
ISM_WriteLog(pinfo->inChanID,"用户资料在数据库为空,没有查询到语音.");
//m_pData->ismData.IsDBConnect = false ;
return ;
} strcpy(pinfo->PlayFile1,m_path);
pinfo->FileID=id;
pinfo->state=TRUNK_ENDQUEDB;
}
在A机器上,执行数据库操作函数可以返回相应的数据,并成功;在B机器上执行函数的时候却不成功,出现异常情况(catch里面)。并A、B机器连接的数据库都是同一个数据库。执行的函数如下:
void GetAA(TrunkInfo * pinfo){
char callee[26];
char caller[26];
char m_path[100];
char strSQL[200];
memset(strSQL,0,200);
memset(m_path,0,100);
int id = -1;
sprintf(caller,"%s",pinfo->CallerID.Caller_in);
sprintf(callee,&pinfo->CalleeID.Callee_in[4],7);
sprintf(callee,"%s",callee);
strcpy(strSQL,"Select * From Table(Select Cast(FUN_NEWCRBT('");
strcat(strSQL,callee);
strcat(strSQL,"','");
strcat(strSQL,caller);
strcat(strSQL,"') as CRBT) from dual)");
//说明:一旦返回的语音路径为空时,Oracle将以错误处理,实际数据库连接完好,所以不能以这个为断开依据20050128
try{
m_ado->ExcuteQuery(strSQL);
id = m_ado->GetInt("ID");
m_ado->GetString("RINGPATH",m_path);
}catch (_com_error e)//异常处理 //7月
{
strcpy(pinfo->PlayFile1,"");
pinfo->FileID = -1; //语音id//借用字段
pinfo->state=TRUNK_ENDQUEDB;
ISM_WriteLog(pinfo->inChanID,"用户资料在数据库为空,没有查询到语音.");
//m_pData->ismData.IsDBConnect = false ;
return ;
} strcpy(pinfo->PlayFile1,m_path);
pinfo->FileID=id;
pinfo->state=TRUNK_ENDQUEDB;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货