資料庫A有表Table_A,想把Table_A內容同步到資料庫B的表Table_B,除了用回圈逐條Insert之外,是否有批量寫入的方式?比如:
ado_A_query 和 ado_B_table通過不同的connection分別連接到資料庫A和B,執行下面的陳述句:
ado_A_query.SQL.Text := 'Select * From Table_A'
ado_A_query.Open;
ado_B_table.TableName := 'Table_B'; //Table_B是空表,欄位定義與Table_A完全一致
ado_B_table.Active := True;
ado_B_table.RecordSet := ado_A_query.RecordSet;
ado_B_query.UpdateBatch(arall);
這樣執行不會報錯,但Table_B還是空表,請熟悉的大神指導一下。
uj5u.com熱心網友回復:
UpdateBatch只有在記錄修改過之后才會提交回資料庫吧,記錄你讀取后實際并沒有被修改過。其實逐條insert就可以,只要包裹在一個事務中就行了,性能比默認的一條insert一個事務還是高很多的。
資料庫自身一般都帶有Bulk write的功能,但是ADO中未必能用的了這些功能。可以試試不用delphi程式來實作資料庫同步,直接用資料庫的sql腳本來做。
uj5u.com熱心網友回復:
A是ACCESS,B是SQLSERVERuj5u.com熱心網友回復:
用Delphi來實作資料表同步是一種效率很差的方法,建議用sql server management studio提供的資料匯入功能來代替。Sql Server還提供了Integration Service, 這是一個功能更強大、但也更復雜、適用于不同型別資料庫之間的資料匯入匯出功能。
uj5u.com熱心網友回復:
建議使用BatchMove連接兩個表,進行資料轉移。uj5u.com熱心網友回復:
BatchMove是正解,專門干這事的轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/35961.html
標籤:數據庫相關
