我的数据库是MySQL5.0,ODBC用的是MySQLODBC 3.51。
可是在开发时发现一个问题,如果ADOQuery在取数据和Post之间正好有人修改
了服务器上的同一条数据,那么Post就会出现“无法为更新定位行,一些值可
能已在最后一次读取后被修改”,我查了一下,在SQLServer下,可以将ADOQuery
的CursorLocation设置成clUseServer,就可以解决这个问题,但MySQL设置时
报错“Database does not suport book"之类的错,反正就是不支持
clUseServer。
之后我换了ODBC的版本,换成了MySQLODBC 5.0,还是不行。请问如何解决这个问题
1、请不要告诉我,在Post之前Refresh,这样用户的输入不是丢失了吗
2、请不要告诉我,自己拼Update的SQL语句来更新数据库,这样太麻烦而且表很多
3、请不要告诉我,用事务捕捉Exception并回滚,因为用户没有输入错误,这些
数据是要报存的,我只用把最新的东西存进去就可以了我想问各位有什么解决方法,或者各位的MySQL是否支持clUseServer?

解决方案 »

  1.   

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

  2.   

    我觉得楼主这样说,显得效率很高,不浪费大家的时间,没什么傲不傲的。不知道答案,但是我想,这是不是跟锁有关?你如果要保证post时不出错,就得保证你取了之后,别人不能修改这条记录。只知道这么多