IRowsetFastLoad を使用してデータを一括コピーする方法 (OLE DB)
コンシューマは、SQLOLEDB プロバイダ固有のプロパティ SSPROP_ENABLEFASTLOAD を VARIANT_TRUE に設定することにより、一括コピーを実行する必要があることを SQLOLEDB に通知します。コンシューマはデータ ソースのプロパティ セットを使用して、SQLOLEDB セッションを作成します。この新しいセッションによって、コンシューマから IRowsetFastLoad にアクセスできるようになります。
IRowsetFastLoad を使用してレコードをテーブルに一括コピーする方法を示す完全なサンプル コードが用意されています。このサンプルでは、テーブル IRFLTable に 10 個のレコードを追加します。テーブル 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 を呼び出して、テーブルにデータを一括コピーします。