程序使用vc6编写,使用存储过程连接DB。在使用SQL2000的时候没有问题。但是连接SQL2005的时候就出现异常。
下面是我连接DB的代码,请高手指点,在线等,很急。m_pCommand.CreateInstance(__uuidof(Command));
m_pCommand->ActiveConnection=pConn;
m_pCommand->CommandText = _bstr_t("sic_analysis");
m_pCommand->CommandType = adCmdStoredProc;CString str_file_name,str_md5;
int int_is_suspecious,int_have_md5;
str_file_name=file_list_node->file_name;
str_md5=file_list_node->file_md5;
int_is_suspecious=0;
int_have_md5=file_list_node->have_md5;_variant_t vfile_name,vmd5,vis_suspecious,vhave_md5;vfile_name=_variant_t(_bstr_t(str_file_name));
vmd5=_variant_t(_bstr_t(str_md5));
vhave_md5.vt=VT_I4;
vhave_md5.lVal=int_have_md5;
vis_suspecious.vt=VT_I4;
vis_suspecious.lVal=int_is_suspecious;
_ParameterPtr mp_var1,mp_var2,mp_var3,mp_var4;
mp_var1.CreateInstance(__uuidof(Parameter));
mp_var2.CreateInstance(__uuidof(Parameter));
mp_var3.CreateInstance(__uuidof(Parameter));
mp_var4.CreateInstance(__uuidof(Parameter));mp_var1=m_pCommand->CreateParameter(_bstr_t("@filename"),adVarChar,adParamInput,255,vfile_name);
m_pCommand->Parameters->Append(mp_var1); 
mp_var2=m_pCommand->CreateParameter(_bstr_t("@md5"),adVarChar,adParamInput,255,vmd5);
m_pCommand->Parameters->Append(mp_var2); 
mp_var3=m_pCommand->CreateParameter(_bstr_t("@md5_tag"),adInteger,adParamInput,sizeof(int),vhave_md5);   
m_pCommand->Parameters->Append(mp_var3); 
mp_var4=m_pCommand->CreateParameter(_bstr_t("@iReturn"),adInteger,adParamOutput,sizeof(int),vis_suspecious); 
m_pCommand->Parameters->Append(mp_var4); 
_variant_t vNull;
vNull.vt=VT_ERROR;
vNull.scode=DISP_E_PARAMNOTFOUND;m_pCommand->Execute(&vNull,&vNull,adCmdStoredProc);//执行到这里就出现异常
vis_suspecious=mp_var4->Value;
int_is_suspecious=vis_suspecious.lVal;
file_list_node->is_suspecious=int_is_suspecious;//param.Release(); 
m_pCommand.Release();