我现在做一小系统,但由于网络带宽只有64K(DDN),没办法只好将数据库放在本地,只是想让发生过更新、增加、删除等操作的数据表内容在远程总库中更新。
    说明:
      1、本地库和远程库都有相同的表且表结构完全一样;
      2、在Delphi有两个connection,分别指向远程和本地;
    问题:
      1、如何用最简单、高效的语句实现用本地表中的一条记录更新远程表;
      2、如何用最简单、高效的语句实现用本地表中的N条记录更新远程表;
      3、如何让本地和远程表同时增加相同的记录;
      4、如果在更新过程中出现意外,能不能事务回滚;

解决方案 »

  1.   

    1、如何用最简单、高效的语句实现用本地表中的一条记录更新远程表;
          2、如何用最简单、高效的语句实现用本地表中的N条记录更新远程表;这两个问题全看你写SQL语句的水平了
          3、如何让本地和远程表同时增加相同的记录;
          4、如果在更新过程中出现意外,能不能事务回滚;这两个问题也是一个问题,用事务可以防止同步更新失败
      

  2.   

    可是,两个表不是建立在同一个connection上,用Sql可以实现吗?
      

  3.   

    Delphi+ADO,直接访问远程数据库,更新等修改操作,可在服务器端用存储过程实现
    如建立存储过程'UpdateData':CREATE PROCEDURE UpdateData
    @SN varchar(20)AS
    update R_SN set seq=200 where Code=@SN
    GO
      

  4.   

    有两个表,结构完全一样,主键为ID,
       求一存储过程(Sql server 2000)
        1、当a表变动时,b表做相应的变动(Insert,Update,Delete....);
        2、给出一ID,要求对b表进行检索,如果存在,则根据a表对b表Update
                                        不存在,则根据a表对b表Insert
                                     如果a中不存在,则b表中对相应的记录Delete
        3、如果a,b两表在不同的服务器上的不同数据库中,有没有办法实现
       另,问一个很菜的问题,用存储过程和直接提交Sql那个更好一点,有什么区别(如速度等)