adoquery+mysql的问题,郁闷死了(100)

  • 主题发起人 主题发起人 tanafenga
  • 开始时间 开始时间
T

tanafenga

Unregistered / Unconfirmed
GUEST, unregistred user!
处于偷懒,写数据编辑界面直接用dbgrid采用mysql数据库,在delphi7下用adoquery访问数据表发现在特殊的情况下总是有"无法为更新定位行,一些值可能已经在最后一次读取后已更改"这个问题在网上有很多说法,可是描述都与我发现的问题不一样,有环境的大家可以简单程序试一下。数据表:有 fd1,fd2,fd3 字段,数据表中有数据若干dephi程序,一个from,adoquery,datasource,dbgrid ,关联好运行点任何一行数据(假如 fd1=10 fd2='abc' fd3=1)第一步:编辑 fd1,如改称 11第二步:光标移动到 fd2 ,(不要移动行)第三步:光标移动到 fd1,并将fd1改回原来的值 10第四步:移动行(实际就是保存数据),这时候就提示错误了此程序如链接的是oracle数据库,一点问题没有,用mysql总有这个BUG起初以为是mysql server 或陈列client 版本问题,换了也无济于事感觉还是在数据库的缓存机制上有点问题不过可能可以通过修改 dbgrid的代码似乎也可以避开这个问题,但是水平有限不知道哪位有解决的办法,这里跪拜了
 
在 AFTERPOST中写 reflash
 
程序还没到afterpost就已经报错了的
 
是不是我说的不清楚呢?用dbgrid 修改一条记录修改 字段fd1 (10 改为 11)光标移动到下右(左)边的字段单元后再移动回fd1对应单元将fd的值再次修改为最 开始的值 10 这时候换行(自动保存post),系统报错
 
再回来 数据集是什么状态。自己查看一下,post 可以自己做个处理,post之前都让它为编辑状态,可以随便改数据,最后再提交 post
 
表里加个主关键字段,一起关联上,应该就好了.如果不想看到就把这个字段设成隐藏的
 
都没看明白我的问题呀???晕
 
你不试验下,怎么知道别人说的对不对呢...
 
我按照楼主说的步骤操作了没有出现楼主说的问题~~~我用的是Delphi6+MsSql2000Delphi7+MsSql2000所以我觉得可能是MySql的问题
 
后退
顶部