同时有两个TDatabase连一个Access数据库
当其中一个TDatabase的TQuery对这个数据库的某一张表做了个查询
再对另一个TDatabase的TTable对同一张表执行Locate就会出错问:如何避免这种情况,当然用两个TDatabase连同一个数据库不好

解决方案 »

  1.   

    两个都用Locate不做查询就不会出现这样问题
      

  2.   

    TDataBase就是为了方便共享连接,一个数据库一个DataBase,你用两个干什么?
    你的Table和Query(哪怕几十上百个)可以同时用DataBase呀。
      

  3.   

    没有独占阿
    至于两个Database,那是被迫的,现在改不了拉
    如果另一个不作查询,就没法做了,返回很多记录的
      

  4.   

    用两个database也可以但要注意,当连结同一个表时,要并发控制他们,最好还是用1个表吧 !
      

  5.   

    to shizhoubo:如何并发控制?
      

  6.   

    应该不会出现这种情况,因为我平时,经常一边用Query查表,边用Locate来数据。
      

  7.   

    to blazingfire:你可能只用了一个TDatabase连接,我用了两个
      

  8.   

    oracle_lover(数据库情人)  说的好
      

  9.   

    oracle_lover(数据库情人)是说的不错,但是我说了现在已经没法改了,请提供解决方法,前提是保持原有结构不动
      

  10.   

    关闭其中一个数据集就是了:
    1.  在locate之前先保存sql.text到一个string变量中。
    2.  database1.query.close;//关闭查询
        database2.table.open;//打开表
        database2.table.locate();
    3.  database2.table.close;//关闭table
        database1.query.sql.add(string变量);
        database1.query.open;//打开查询
        
      

  11.   

    to ssl2000:Locate出错时另外一个查询已关闭了