关于通过ado连接access的dll工程的一点问题

penfe 2005-05-10 12:49:46
vc6.0的dll工程,通过ado方式连接access数据库。已经成功打开了数据库,并且可以查询什么的了。
问题是这样的:
//int bobo = 3;
string sqlstr = "select out from ask where id = 3";
char *sql;
sql = const_cast<char*>(sqlstr.c_str());

m_pRecordset->Open(sql
,(IDispatch*)m_pConnection
,adOpenDynamic
,adLockOptimistic
,adCmdText);
以上代码就可以成功查询出结果。
可是我如果想改成
string sqlstr = "select out from ask where id = '"+bobo+"'";
这样来查询就会出错,'"& aaa &"'、"& aaa &"、# " & aaa & "#都一样出错。

请各位大人指点一下小弟。
顺便问一下,数据库表名用汉字可以吗,那样的话应该注意一下什么。
还有我是用标准C++库的string类,不是MFC的CString类。
...全文
49 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
penfe 2005-05-16
  • 打赏
  • 举报
回复
终于搞好了。
string bobo(key);
bobo = "'" + bobo;
bobo = bobo + "'";
string sqlstr = "select 输出 from 常用问答 where 输入 = ";
sqlstr += bobo;
char *sql;
sql = const_cast<char*>(sqlstr.c_str());

m_pRecordset->Open(sql
,(IDispatch*)m_pConnection
,adOpenDynamic
,adLockOptimistic
,adCmdText);

//以后谁有类似的语句,或语句格式问题的兄弟。最好用MessageBox函数抛出你的语句,多观察一下就可以发现你的语句为什么不对,而且更容易向对的方向改了。
penfe 2005-05-10
  • 打赏
  • 举报
回复
to回复人: Leftie(左手,为人民币服务)
我按照你说的做了,但是错误提示如下:

error C2296: '&' : illegal, left operand has type 'char [32]'

然后我原来做asp网页和MFC时是可以这么的,
但在dll 工程下似乎就不可以这样?
oyljerry 2005-05-10
  • 打赏
  • 举报
回复
数据库表明一般用英文,错误少些
饮水需思源 2005-05-10
  • 打赏
  • 举报
回复
具体要看ID的数据类型:
数值型:"select out from ask where id = "& bobo &""
字符型:"select out from ask where id = '" & bobo & "'"

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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