各位大哥:
    有谁知道 在DELPHI 中怎样 把一个数据库中某个表中的数据 放到其他数据库中
    的表中,然后再删除 源表中的数据 ,
    我在DELPHI的执行 中使用了事务,
     可是一到  insert into  db.database.dbo.table value (1,2)
                      ^^^^远程的服务器名 数据库名和表名                    就出现“不能在此会话中启动更多的事务”的错误
                    提示
          为什么呀?
           帮帮忙,明天就要用了

解决方案 »

  1.   

    RESQL.Lines.Clear;
        RESQL.Lines.Add('begin transaction ');
        RESQL.Lines.Add('insert into ......');//普通的SQL操作    RESQL.Lines.Add('if @@error<>0 begin rollback tran select Res=''ERROR'' return end ');
        RESQL.Lines.Add('Commit transaction select Res=''OK'');    //7)请求Server端将数据物理存储到数据库服务器
        ClientDataSetSavePZ.Close;
        ClientDataSetSavePZ.DataRequest('ClearSQL');    // 逐行传递行到Server端
        for i:=0 to RESQL.Lines.Count-1 do begin
            ClientDataSetSavePZ.DataRequest(RESQL.Lines[i]);
        end;    try
            ClientDataSetSavePZ.Data:=ClientDataSetSavePZ.DataRequest('ExecSQL');
        finally
           ....
        end;
      

  2.   

    to jacobran(),建议不要这样做,因为速度太慢,不仅客户会抱怨系统不完善,到时候还要自己进行修改。
    建议楼主用异构数据库的导入、导出进行实现(即使是同类数据库也可以进行),具体办法见:
    1)我以前做过的ACCESS--SQL server2000之间的互导:http://www.delphibbs.com/keylife/iblog_show.asp?xid=8024
    2)原始参考资料: http://www.delphibbs.com/delphibbs/dispq.asp?lid=1691966
      

  3.   

    不能用事务吧!你直接自己用SQL写怎么样?就是把两个数据库的数据用SQL语句直接导