次の方法で共有


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 テーブルにデータを一括コピーするには

  1. データ ソースへの接続を確立します。

  2. SQLOLEDB プロバイダ固有のデータ ソース プロパティである SSPROP_ENABLEFASTLOAD を VARIANT_TRUE に設定します。このプロパティを VARIANT_TRUE に設定すると、新しく作成されたセッションを使用して、コンシューマから IRowsetFastLoad にアクセスできるようになります。

  3. IOpenRowset インターフェイスを要求するセッションを作成します。

  4. IOpenRowset::OpenRowset を呼び出して、(一括コピー操作によるデータのコピー先の) テーブルのすべての行が含まれる行セットを開きます。

  5. 必要なバインドを実行し、IAccessor::CreateAccessor を使用してアクセサを作成します。

  6. テーブルへのデータのコピー元となる、メモリ バッファを設定します。

  7. IRowsetFastLoad::InsertRow を呼び出して、テーブルにデータを一括コピーします。