数据库的com_error错误

pyggyy 2012-08-28 04:25:21
我有一个数据库,里面有几列数据,我原来是用“孔洞编号”取数据集,代码运行良好。
但后来根据需要,要改成用“工程名称”取数据集,编译运行都没有问题,在sql.Format的时候都没有问题,但在m_pRecordset->Open运行后就提示“_com_error”错误。说明一下,其实“孔洞编号”和“工程名称”都是字符串类型,而且值都是一样的。请各位不吝赐教,多谢了!
代码如下:

OnInitADOConn();
//创建记录集指针对象实例
m_pRecordset.CreateInstance(__uuidof(Recordset));
//打开记录集
CString sql;
//sql.Format("select * from PicInfo where 孔洞编号='%s' order by 起点深度 asc",EngHoleID);//原代码,运行良好
sql.Format("select * from PicInfo where 工程名称='%s' order by 起点深度 asc",EngHoleID);
m_pRecordset->Open((_bstr_t)sql,m_pConnection.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText);
//运行了这句话之后,跳出提示“_com_error”错误。

...全文
398 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
maplewsh 2012-09-11
  • 打赏
  • 举报
回复
我和楼主遇到了同样的问题,不知道楼主的问题解决了吗?是怎么解决的?求解决方法。。谢谢
maplewsh 2012-09-11
  • 打赏
  • 举报
回复
我和楼主遇到了同样的问题,不知道楼主的问题解决了吗?是怎么解决的?求解决方法。。谢谢
maplewsh 2012-09-11
  • 打赏
  • 举报
回复
我和楼主遇到了同样的问题,不知道楼主的问题解决了吗?是怎么解决的?求解决方法。。谢谢
秀小川 2012-08-30
  • 打赏
  • 举报
回复
最简单的方法,你可以将程序执行到"sql.Format("select * from PicInfo where 工程名称='%s' order by 起点深度 asc",EngHoleID);"这句完了之后的sql复制到SQL server的查询分析器上执行一遍,看在那边有没有问题!
傻X 2012-08-30
  • 打赏
  • 举报
回复
那就Unicode编码,就没这个问题了
pyggyy 2012-08-30
  • 打赏
  • 举报
回复
项目需要必须使用中文,没办法

[Quote=引用 7 楼 的回复:]

我的方法你没尝试么??
[/Quote]
傻X 2012-08-30
  • 打赏
  • 举报
回复
我的方法你没尝试么??
pyggyy 2012-08-30
  • 打赏
  • 举报
回复
怎么都解决不了,只有不用这个方法,改其他方法了。
BombZhang 2012-08-29
  • 打赏
  • 举报
回复
用下面链接中的宏抓出实际的数据库错误消息看看
http://blog.csdn.net/bombzhang/article/details/7431624
--茶-- 2012-08-29
  • 打赏
  • 举报
回复
一定要加try catch(_com_error e)
启舰 2012-08-28
  • 打赏
  • 举报
回复
从代码上看,是没有什么问题,可能是中文名称的问题
傻X 2012-08-28
  • 打赏
  • 举报
回复
关键点:
别用中文做表的列名

特别是你用多字符的时候,会很伤心的。


pyggyy 2012-08-28
  • 打赏
  • 举报
回复
我用catch(_com_error e)得到的结果是IDispatch error #3088,我搜了一下,意思是字段错误,我查了字段,确实没有错。
又把中文字段加了括号,即"工程名称"改成"[工程名称]" ,"起点深度"改成"[起点深度]",运行后还是#3088的错误,实在想不出还有哪里可能出错

4,011

社区成员

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

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