数据库执行出现put_CommandText异常!

秀小川 2012-10-09 11:52:06

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后面的话,就不会出现上述问题,很是奇怪!
...全文
82 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
秀小川 2012-10-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

pCommand没有调用createInstance或者调用不成功
[/Quote]
这些都不是,貌似就是由于sscanf_s(itemStr.Mid(2*i,2),"%x",&UserID[i])的问题,我把for循环去掉就可以了!
zyq5945 2012-10-09
  • 打赏
  • 举报
回复
应该不是这句的错误,估计是别的地方,比如for循环,指针为空引起的。
ADO错误的话catch(_com_error e)捕获异常都可以获取。
秀小川 2012-10-09
  • 打赏
  • 举报
回复
出现的问题提示是
"0x00470e23 处未处理的异常: 0xC0000005: 读取位置 0x00000050 时发生访问冲突"
Harper 2012-10-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

出现的问题提示是
"0x00470e23 处未处理的异常: 0xC0000005: 读取位置 0x00000050 时发生访问冲突"
[/Quote]

这类问题一般 空指针,内存泄露 自己好好找找
zyq5945 2012-10-09
  • 打赏
  • 举报
回复
pCommand没有调用createInstance或者调用不成功
秀小川 2012-10-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

应该不是这句的错误,估计是别的地方,比如for循环,指针为空引起的。
ADO错误的话catch(_com_error e)捕获异常都可以获取。
[/Quote]
捕获到的异常为空!UCHAR UserID[6] UserID的定义也是6个长度的数组!

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧