2012-02-28 49 views
0

我想優化我的代碼,將7000個記錄從一個表複製到另一個表。在Cbuilder上的數據庫之間複製表

SQLQuery1->Open(); 

while (!SQLQuery1->Eof) 
    { 
    Table1->Append(); 
     Table1->FieldByName("terc1_cod")->Value = SQLQuery1->FieldByName("terc1_cod")->Value; 
     Table1->FieldByName("terc1_nome1")->Value = SQLQuery1->FieldByName("terc1_nome1")->Value; 
     Table1->FieldByName("terc1_nome2")->Value = SQLQuery1->FieldByName("terc1_nome2")->Value; 
     Table1->FieldByName("terc1_morada")->Value = SQLQuery1->FieldByName("terc1_morada")->Value; 
     Table1->FieldByName("terc1_local")->Value = SQLQuery1->FieldByName("terc1_local")->Value; 
     Table1->FieldByName("cdpst_cod")->Value = SQLQuery1->FieldByName("cdpst_cod")->Value; 
     Table1->FieldByName("terc1_nctrb")->Value = SQLQuery1->FieldByName("terc1_nctrb")->Value; 
     Table1->FieldByName("conc_descr1")->Value = SQLQuery1->FieldByName("conc_descr1")->Value; 
     Table1->FieldByName("freg_descr1")->Value = SQLQuery1->FieldByName("freg_descr1")->Value; 
     Table1->FieldByName("terc1_telef")->Value = SQLQuery1->FieldByName("terc1_telef")->Value; 
     Table1->FieldByName("terc1_telefax")->Value = SQLQuery1->FieldByName("terc1_telefax")->Value; 
     Table1->FieldByName("terc1_email")->Value = SQLQuery1->FieldByName("terc1_email")->Value; 
     Table1->FieldByName("terc1_estado")->Value = SQLQuery1->FieldByName("terc1_estado")->Value; 
     Table1->FieldByName("alfa01")->Value = SQLQuery1->FieldByName("alfa01")->Value; 
    Table1->Post(); 
    SQLQuery1->Next(); 
    ProgressBar1->StepIt(); 
    }  
    SQLQuery1->Close(); 

SQLQuery1是DBX連接到ODBC和表1是MySQL數據庫。這需要大約3分鐘來複制7000行。我怎樣才能加快速度?

回答

1

它以來我與這些部件的工作,但我的方式來做到這一點是這樣的很長一段時間:

qryOracle->SQL->Clear(); 
qryOracle->SQL->Add("select * from " + sSrcTable;); 
qryOracle->Prepare(); 
qryOracle->Open(); 

tblDest->TableName = "whatever"; 
tblDest->BatchMove(frmData->sqlQ, batCopy);