如何:使用 IRowsetFastLoad 來大量複製資料 (OLE DB)
取用者會將其大量複製的需求通知 SQLOLEDB,方法是將 SQLOLEDB 提供者特有的屬性 SSPROP_ENABLEFASTLOAD 設定為 VARIANT_TRUE。在資料來源上設定該屬性後,取用者會建立 SQLOLEDB 工作階段。新的工作階段可以讓取用者存取 IRowsetFastLoad。
完整的範例會示範使用 IRowsetFastLoad 將記錄大量複製到資料表中。在這個範例中,10 筆記錄會加入至資料表 IRFLTable。您必須在資料庫中建立資料表 IRFLTable。
完整的範例程式碼位於 BulkCopyRecords.cpp 檔案中。您可以從 MSDN 的 SQL Server 下載 (英文) 頁面下載含有範例的封存。
這個範例是用 Microsoft Visual C++ 2005 所開發的。
安全性注意事項 |
---|
在可能的狀況下,請使用 Windows 驗證。如果無法使用 Windows 驗證,請提示使用者輸入執行階段的認證。請避免將認證儲存在檔案中。如果您必須保存認證,則應該用 Win32 crypto API 加密這些認證。 |
若要大量複製資料到 SQL Server 資料表中
建立資料來源的連接。
將 SQLOLEDB 提供者特有的資料來源屬性 SSPROP_ENABLEFASTLOAD 設定為 VARIANT_TRUE。當這個屬性設定為 VARIANT_TRUE 之後,新建立的工作階段就會允許使用者存取 IRowsetFastLoad。
建立要求 IOpenRowset 介面的工作階段。
呼叫 IOpenRowset::OpenRowset,以便開啟包含資料表中所有資料列的資料列集 (使用大量複製作業複製資料)。
進行必要的繫結,並且使用 IAccessor::CreateAccessor 來建立存取子。
設定要將資料複製到資料表的來源記憶體緩衝區。
呼叫 IRowsetFastLoad::InsertRow,以便大量複製資料到資料表中。