DAO也有难搞的地方!

赖勇浩 2004-12-10 06:26:30
CString strSQL;
strSQL.Format("select * from dirtydata where dirtydata.dirtyword_gb like '%s%%'",str);
try
{
m_pDatabase->Execute(strSQL);
}
catch(CDaoException* e)
{
e->ReportError();
e->Delete();
return 0;
}

以上代码是一个DAO连接ACCESS的程序段,原意是查找dirtydata里dirtyword_gb字段中的以str内容为前缀的记录.如有记录为"好好学习",则希望可以通过"好%"来查找出来.

现在的问题是执行时出错,异常报告为"不能执行选定的查询".
其中m_pDatabase已经打开,m_pRecordset存在,并已经关闭,

为什么会这样?

注,str内容为汉字,数据库记录也为汉字.
...全文
73 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lltaotao007 2004-12-17
  • 打赏
  • 举报
回复
原来找开的数据库没有关闭吧
赖勇浩 2004-12-10
  • 打赏
  • 举报
回复
用#代替'

因为不是日期型的数据,所以也不能正确执行,奇怪啊.
赖勇浩 2004-12-10
  • 打赏
  • 举报
回复
对了,我是把这个数据库功能做到DLL里去的,不会是因为这个吧?难道DLL不能封装对数据库的操作?但似乎其它语句又没有错啊.
Kudeet 2004-12-10
  • 打赏
  • 举报
回复
用#代替'
赖勇浩 2004-12-10
  • 打赏
  • 举报
回复
一样不能解决问题,可能是其它方面的原因了,真是晕啊........
Kudeet 2004-12-10
  • 打赏
  • 举报
回复
strSQL.Format("select * from 表名 where 列 like '%%%s%%'",keyword);

4,011

社区成员

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

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