我想将每次的操作同时存入两个数据库,包括更新、删除等操作,该怎么解决比较好?大家有没有好的意见?

解决方案 »

  1.   

    楼上的各位是不是没看清题目啊,触发器能对另一个数据库操作吗?(我没有试过,不太清楚),就算可以,你怎么知道人家是什么数据库,Access也有触发器吗?介意以后回答问题有点责任心。我觉得有两个方法:
    可以用两个adoconnection分别连两个数据库,程序中切换你adoquery的connection,如果表一样的话,那么连sql语句都不要换,直接操作就可以了。
    另一个方法就是,如果你的两个数据库是一模一样的话,你可以直接用filecopy,不过要考虑数据量
      

  2.   

    建议用 adoconnection 连接俩个  table ;
    然后分别 编写相应的代码
    或者可以把保存数据的代码写为一个过程,以需要的操作的数据库和对应的数据表为参数
    那样 就 方便多了!~~
      

  3.   

    如果两个ADOConnection来回切换,是不是很影响速度?
      

  4.   

    用一个ADOConnection,只要把connectstring属性改一下就可以了
    速度肯定有影响,至于大不大,就看数据量了
      

  5.   

    不考虑内存使用,最好还是用两个adoconnection分别连接两个数据库:
    try
      adoconnection1.begintrain;
      数据库操作;
      try
        adoconnection2.begintrain;
        数据库操作;
        adoconnection2.committrain;
      except
        adoconnection2.rollbacktrain;
        abort;
      end;
      adoconnection1.committrain;
    except
      adoconnection1.rollbacktrain;
      showmessage('操作失败');
    end;
      

  6.   

    楼上的请问,如果adoconnection2提交成功,而adoconnection1.committrain;
    失败了,那么adoconnection2将不会回滚了,导致不一致,觉得有问题
      

  7.   

    SQL Server中,设两个数据库:TEST1,TEST2,初始连接到TEST1,要对TEST2操作,可以:
    Select * from test2.dbo.example
      

  8.   

    用两个TABLE会出现不一致回滚,如果在SQL中,可以在SQL本身实现