Добрый день. Столкнулся с проблемой пересноса таблицы из одно БД в другую средствами ADO. сейчас это реализованно по записям. когда работаешь с 100 записями в таблице это проблем не вызывает но теперь есть необходимость обрабатывать по 100 тыс. записей и это явно не подходиткомп виснет минут на 20.
вот пример.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var i,gde:integer; Filename,s:string;
begin
adoconnection2.Connected:=true;
adotable2.Open;
OpenDialog1.Execute;
Filename:=opendialog1.FileName;
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;'+
'Data Source='+filename+';Persist Security Info=False';
ADOConnection1.Connected:=true;
ADOTable1.TableName:='lgotniki_new';
adotable1.Open;
Gde:=0;
{ÂñòГ*ГўГЄГ* Г§Г*ГЇГЁГ±ГЁ}
adotable2.Last;
adotable1.First;
for i:=0 to ADOTable1.RecordCount-1 do begin
ADOTable2.Insert;
ADOTable2.Fields[0].Value:=ADOTable1.Fields[0].Value;
ADOTable2.Fields[1].Value:=ADOTable1.Fields[1].Value;
ADOTable2.Fields[2].Value:=ADOTable1.Fields[2].Value;
ADOTable2.Fields[3].Value:=ADOTable1.Fields[3].Value;
ADOTable2.Fields[4].Value:=ADOTable1.Fields[4].Value;
ADOTable2.Fields[5].Value:=ADOTable1.Fields[5].Value;
ADOTable2.Fields[6].Value:=ADOTable1.Fields[6].Value;
ADOTable2.Fields[7].Value:=ADOTable1.Fields[7].Value;
ADOTable2.Fields[8].Value:=ADOTable1.Fields[8].Value;
ADOTable2.Fields[9].Value:=ADOTable1.Fields[9].Value;
ADOTable2.Fields[10].Value:=ADOTable1.Fields[10].Value;
ADOTable2.Fields[11].Value:=ADOTable1.Fields[11].Value;
ADOTable2.Fields[12].Value:=ADOTable1.Fields[12].Value;
ADOTable2.Fields[13].Value:=ADOTable1.Fields[13].Value;
ADOTable2.Fields[14].Value:=ADOTable1.Fields[14].Value;
ADOTable2.Fields[15].Value:=ADOTable1.Fields[15].Value;
ADOTable2.Fields[16].Value:=ADOTable1.Fields[16].Value;
ADOTable2.Fields[17].Value:=ADOTable1.Fields[17].Value;
ADOTable2.Fields[18].Value:=ADOTable1.Fields[18].Value;
ADOTable2.Fields[19].Value:=ADOTable1.Fields[19].Value;
ADOTable2.Fields[20].Value:=ADOTable1.Fields[20].Value;
ADOTable2.Post;
Gde:=Gde+1;
adotable1.Next;
end;
ADOTable1.First;
Label2.Caption:='ГЃГ*Г§Г* Г¤Г*Г*Г*ûõ ГіГ¤Г*Г·Г*Г® îáГ*îâëåГ*Г*';
Label3.Caption:='Êîëè÷åñòâî Г§Г*ãðóæåГ*Г*ûõ Г§Г*ГЇГЁГ±ГҐГ© ='+INTTOSTR(GDE);
label2.Visible:=true;
label3.Visible:=true;
adoquery1.SQL.Text:='select COUNT(*)from lgotniki';
adoquery1.Active:=true;
s:=adoquery1.Fields[0].Value;
label6.Caption:='îáùåå êîëè÷åñòâî Г§Г*ГЇГЁГ±ГҐГ© Гў ГІГ*áëèöå = '+s;
label6.Visible:=true;
adotable2.Close;
adotable1.Close;
adoconnection2.Connected:=false;
ADOConnection1.Connected:=false;
end;