for (int i=0;i<6;i++)
{
sscanf_s(itemStr.Mid(2*i,2),"%x",&UserID[i]);
}
try
{
sql.Format("select count(*) as BuyTotal from BuyInformation where 用户编号 = '%s' AND 操作类型 = '用户购气'",itemStr);
pCommand->CommandText = (_bstr_t)sql;
pRecordset=pCommand->Execute(NULL,NULL,adCmdText);
}
catch(_com_error e)
{
MessageBox("数据库错误:\r\n" + e.Description(),"系统提示",MB_OK|MB_ICONERROR);
return;
} 代码如上,当调试运行到pCommand->CommandText = (_bstr_t)sql时,会在" HRESULT _hr = put_CommandText(pbstr);"出现异常!
当我将for循环里面的东西放到catch后面的话,就不会出现上述问题,很是奇怪!
"0x00470e23 处未处理的异常: 0xC0000005: 读取位置 0x00000050 时发生访问冲突"
ADO错误的话catch(_com_error e)捕获异常都可以获取。