建立两个adoconnection连接.然后如何实现分别连接到这两个连接的表之间的表
的数据复制?
表结构一样。一个是sqlserver,一个是access数据库.
谢谢。

解决方案 »

  1.   

    procedure TfrmDataCopy.Button1Click(Sender: TObject);
    var
      i:Integer;
    begin
      ADOTable2.DisableControls;
      ADOTable2.Open;
      with ADOTable1 do
      begin
        First;
        while not eof do
        begin
          ADOTable2.append;
          for i:=0 to ADOTable2.FieldCount-1 do
          begin
            ADOTable2.FieldByName(ADOTable2.Fields[i].FieldName).AsString:=Fields[i].AsString;
          end;
          ADOTable2.post;
          next;
        end;
      end;
      ADOTable2.EnableControls;
      ShowMessage('拷贝成功!');
    end;从ADOTable1拷贝到ADOTable2中去
      

  2.   

    到SQL Server上做一个链接服务器连接到ACCESS,
    这样只用建立一个连接就可以了.
      

  3.   

    导数据不必用两个adoconnection,一个就行
    从access 到sqlserver
    SELECT * into #temp
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="D:\Work\My_Test_Program\date.mdb";User ID=Admin;Password=')...Access表名
      

  4.   

    传递数据较大,直接导入数据好了。
    数据不多,用流来实现数据的传输。
    先从一个数据库中读取:
    str:=Tmemorystream.Create;
    str.Position:=0;
    Tblobfield(Form1.ADOTable1.FieldByName('字段名')).savetostream(str);
    再保存:
    str:=Tmemorystream.Create;
    str.Position:=0;
    form1.ADOTable1.Append;
    Tblobfield(form1.ADOTable1.FieldByName(字段名')).LoadFromStream(str);
      

  5.   

    zsy146(思)  workers(宁可中日永不好!誓死夺回钓鱼岛!) 的两种办法都可行 我来曾分:)
      

  6.   

    可以用OpenDataSource,但是只能单机使用,不使用与远程数据传递。否则只能用Append--Post方法。
      

  7.   

    楼上的都可以,但我更赞同qizhanfeng(glacier) 的,那样网络流量更小,速度更快.
      

  8.   

    delphi自带的一个叫做datadump的工具阿,你们看看阿,可以实现不同数据库之间的数据互相导入!!
      

  9.   

    如何从sqlserver到access,只用sql来实现。