关于access数据库的更新问题

tiger413 2011-10-16 11:00:32
mydatabase.m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
mydatabase.m_pRecordset->Open("SELECT * FROM user",mydatabase.m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

strSql.Format(_T("UPDATE user set category = '%s' AND contrl = '%s' AND usercate = '%s' AND userdis = '%s' WHERE addres = '%s'"),cateBuff,contrlBuff,userBuff,contryBuff,strBuff);
mydatabase.m_pConnection->Execute((_bstr_t)strSql,NULL,adCmdText);
mydatabase.m_pRecordset->Update();

问个很弱的问题,这样数据库没有更新,为什么?请给一下改正办法?
...全文
51 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
tiger413 2011-10-18
  • 打赏
  • 举报
回复
谢谢,我找到原因,其本上也就是你说的那个问题,是因为字符串写入listcontrl时候用是的char* 类型,所以用getitemtext得到是字符串虽然赋给了CString类型的变量,但是还是会有问题,无法正解更新数据库。
Ol_lO 2011-10-18
  • 打赏
  • 举报
回复
strBuff是CString类型??
format的时候“(LPCSTR)strBuff”试试
tiger413 2011-10-17
  • 打赏
  • 举报
回复
没有人回答吗?语句是全部执行成功了的,try试过,也没有报错,就是数据库没有改变,数据库是可以写入的,
tiger413 2011-10-17
  • 打赏
  • 举报
回复
我算是找到问题所在了,但是没法解决问题,就是where的条件,当我真给strBuff赋一个字符串时,比如“zhang”,数据库也有此值,这时候能正常更新进去,如果是从其他地方取到的值,比如用getitemtext()从视图列表中取得的值,照样是CString类型,但还是执行不成功,用CString的Mid得到的值也不行,请那位大虾指点一下,谢谢。
tiger413 2011-10-17
  • 打赏
  • 举报
回复
楼上提到的问题我也跟踪过了,数据库能查寻,能读取,在执行Execute之前所有的参数都有正确的值,包括where的条strBuff,数据库里也有跟strBuff相同的记录,这个些参数值当然都是CString类型的,但是还是不成功,怎么知道where之后的条件值找到没有?真是不知道怎么搞了。
Ol_lO 2011-10-17
  • 打赏
  • 举报
回复
首先看看待更新的记录数据库中有没有,然后核实下update的where子句
tiger413 2011-10-17
  • 打赏
  • 举报
回复
补充一下,我判断mydatabase.m_pRecordset->update();之前,我判断!mydatabase.m_pRecordset->adoEOF,表示已经找到,但是update后数据没有写入。但只要把条件直接赋值一个字符串,其它要改变的值保持原样,就能更新,真的太怪了。
tiger413 2011-10-17
  • 打赏
  • 举报
回复
不好意思,我还不知道怎么打印一条语句的执行情况 ,我定义了两个CString变量,一个用GetItemText(0,0),来赋值,一个直接给他赋值一个字符串,如"zhang",从监视窗口看完全一样的,但是判断两个值是否相等时报的是不相等,我想应该是字符串的格式不同,不知道怎么把这个格统一起来,变成"zhang"这种字符串格式。
Ol_lO 2011-10-17
  • 打赏
  • 举报
回复
你运行update前,把那条语句打印下,检查下

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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