次の方法で共有


プログラム変数からデータを一括コピーする方法 (ODBC)

一括コピー関数 bcp_bind と bcp_sendrow を使用して、プログラム変数から SQL Server にデータを一括コピーする方法を示すサンプルがあります (この例では、簡略化のためエラーチェック コードが削除されています)。

完全なサンプル コードは、BulkCopyFromVariables.cpp ファイルにあります。このファイルは、SQL Server のコード サンプルのページからダウンロードできます。このサンプルは、Microsoft Visual C++ 2005 を使用して、ODBC 3.0 以降用に開発されています。

セキュリティに関する注意   可能な場合は、Windows 認証を使用します。Windows 認証が使用できない場合は、実行時に資格情報を入力するようユーザーに求めます。資格情報をファイルに保存するのは避けてください。資格情報を保存する必要がある場合は、Win32 CryptoAPI を使用して暗号化してください。

プログラム変数に対して一括コピー関数を直接使用するには

  1. 環境ハンドルと接続ハンドルを割り当てます。

  2. SQL_COPT_SS_BCP と SQL_BCP_ON を設定して、一括コピー操作を有効にします。

  3. SQL Server に接続します。

  4. bcp_init を呼び出して、次の情報を設定します。

    • 一括コピー操作の対象になるテーブルまたはビューの名前。

    • データ ファイルの名前には NULL を指定します。

    • 一括コピー エラー メッセージを受け取るデータ ファイルの名前 (メッセージ ファイルを使用しない場合は NULL を指定します)。

    • コピーの方向 (アプリケーションからビューまたはテーブルへのコピーの場合は DB_IN、テーブルまたはビューからアプリケーションへのコピーの場合は DB_OUT)。

  5. 一括コピーする各列で bcp_bind を呼び出して、列をプログラム変数にバインドします。

  6. プログラム変数にデータを格納したら、bcp_sendrow を呼び出してデータ行を送信します。

  7. 何行かを送信したら、bcp_batch を呼び出して、送信済みの行にチェックポイントを作成します。少なくとも 1,000 行に 1 回の割合で bcp_batch を呼び出すことをお勧めします。

  8. すべての行を送信したら、bcp_done を呼び出して操作を終了します。

一括コピー操作の実行中に、bcp_colptrbcp_collen を呼び出して、プログラム変数の場所や長さを変えることができます。さまざまな一括コピー オプションを設定するには、bcp_control を使用します。text、ntext、および image のセグメント データをサーバーに送信するには、bcp_moretext を使用します。