首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

dbgrid+adoquery编辑mysql数据的有关问题,郁闷

2012-03-08 
dbgrid+adoquery编辑mysql数据的问题,郁闷dbgrid+adoquery编辑mysql数据的问题出于偷懒,写数据编辑界面直

dbgrid+adoquery编辑mysql数据的问题,郁闷
dbgrid+adoquery编辑mysql数据的问题

出于偷懒,写数据编辑界面直接用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的代码似乎也可以避开这个问题,但是水平有限

不知道哪位有解决的办法,这里跪拜了


[解决办法]
加主键试试

热点排行