日期:2014-05-16  浏览次数:20843 次

*** 高分请教:MySQL的问题,请注意不是SQLServer ***
我的数据库是MySQL5.0,ODBC用的是MySQLODBC   3.51。
可是在开发时发现一个问题,如果ADOQuery在取数据和Post之间正好有人修改
了服务器上的同一条数据,那么Post就会出现“无法为更新定位行,一些值可
能已在最后一次读取后被修改”,我查了一下,在SQLServer下,可以将ADOQuery
的CursorLocation设置成clUseServer,就可以解决这个问题,但MySQL设置时
报错“Database   does   not   suport   bookmark "之类的错,反正就是不支持
clUseServer。
之后我换了ODBC的版本,换成了MySQLODBC   5.0,还是不行。

请问如何解决这个问题
1、请不要告诉我,在Post之前Refresh,这样用户的输入不是丢失了吗
2、请不要告诉我,自己拼Update的SQL语句来更新数据库,这样太麻烦而且表很多
3、请不要告诉我,用事务捕捉Exception并回滚,因为用户没有输入错误,这些
数据是要报存的,我只用把最新的东西存进去就可以了

我想问各位有什么解决方法,或者各位的MySQL是否支持clUseServer?

------解决方案--------------------
LZ很傲啊
------解决方案--------------------
1、请不要告诉我,在Post之前Refresh,这样用户的输入不是丢失了吗
2、请不要告诉我,自己拼Update的SQL语句来更新数据库,这样太麻烦而且表很多
3、请不要告诉我,用事务捕捉Exception并回滚,因为用户没有输入错误,这些
你这样说,那我就不告诉你了!
------解决方案--------------------
:)

=牛
------解决方案--------------------
我觉得楼主这样说,显得效率很高,不浪费大家的时间,没什么傲不傲的。

不知道答案,但是我想,这是不是跟锁有关?你如果要保证post时不出错,就得保证你取了之后,别人不能修改这条记录。只知道这么多