数据迁移程序,将一个数据库中data1某张表数据迁移到另一个数据库data2相应的表中
两个库可以在不同的计算机上。
要有相应的数据表格显示迁移进度到哪一行会的话请帮忙写详细些。谢谢大侠了。呵呵。

解决方案 »

  1.   

    ADOQuery1.Close;
    ADOQuery2.Close;
    ADOQuery1.SQL.Text := 'select * from data1';
    ADOQuery1.Open;
    ADOQuery2.SQL.Text := 'select * from data2';
    ADOQuery2.Open;
    P.Max := ADOQuery1.RecordCount;
    while not ADOQuery1.Eof do
    begin
      ADOQuery2.Append;
      //赋值过程
      ADOQuery2.Post;
      ADOQuery1.Next;
      P.Position := ADOQuery1.RecNo;
    end;ADOQuery1和ADOQuery2分别连接到两个数据库中的表
      

  2.   

    如果是SQL Server的话,使用OPENROWSET或OPENDATASOURCE。
      

  3.   

    我用的是SQL SERVER 7的版本。请大侠可以说明白点么 我是初学者 呵呵。 谢谢啦。
      

  4.   

    拖两个adoconnection
    两个adoquery
    一个adoconnection连源数据库(connSource)
    一个adoconnection连目标数据库connTarget
    一个adoquery连connSource一个连connTarget
    拖个progressbar,按照bdmh的写法就可以了.
      

  5.   

    是什么数据库?用两个adoconnection,连不同的数据库,进行拷贝。
      

  6.   

    code=Delphi(Pascal)]
    cs:= 'SELECT * INTO data1  FROM data2';
    ADOConnection1.Execute(cs,cmdText,[eoExecuteNoRecords]);
    [/code]
      

  7.   

    ADOQuery1和ADOQuery2 要用两个不同连线(ADOConnection)
      

  8.   

    1.如果数据量很大, 在迁移时要逐笔显示进度是很没效率的事.
    2.如果是Sql Server, 用分布式查询语句为上策.
      如: 
       SELECT a.* 
       into ttt 
       FROM OPENROWSET('MSDASQL','DRIVER={SQL Server};SERVER=server1;UID=sa;PWD=MyPass',data1.dbo.ttt) AS a
      

  9.   


    unit Unit2;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, ADODB, ComCtrls, StdCtrls;type
      TForm2 = class(TForm)
        ADOQuery1: TADOQuery;
        ADOQuery2: TADOQuery;
        Button1: TButton;
        ProgressBar1: TProgressBar;
        ADOConnection1: TADOConnection;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form2: TForm2;implementation{$R *.dfm}procedure TForm2.Button1Click(Sender: TObject);
    var
      stepIt : integer;
    begin
     adoQuery1.close;
     adoquery1.SQL.Text := 'select * from a';
     AdoQuery1.Open ;
     adoQuery2.Close;
     adoquery2.SQL.Text := 'select * from b';
     adoquery2.Open;
     ProgressBar1.Max := ADOQuery1.RecordCount;
     stepIt := 1;
     ProgressBar1.StepBy(1);
     with adoquery1 do while not eof  do
     begin
       adoquery2.Append;
       ProgressBar1.Position := stepIt;
       Application.ProcessMessages;
       ADOQuery2.FieldByName('a').Value := FieldByName('a').Value;
       inc(stepIt);
       Next;
     end;
    end;end.