プログラム変数からデータを一括コピーする方法 (ODBC)
一括コピー関数 bcp_bind と bcp_sendrow を使用して、プログラム変数から SQL Server にデータを一括コピーする方法を示すサンプルがあります (この例では、簡略化のためエラーチェック コードが削除されています)。
完全なサンプル コードは、BulkCopyFromVariables.cpp ファイルにあります。このファイルは、SQL Server のコード サンプルのページからダウンロードできます。このサンプルは、Microsoft Visual C++ 2005 を使用して、ODBC 3.0 以降用に開発されています。
セキュリティに関する注意 可能な場合は、Windows 認証を使用します。Windows 認証が使用できない場合は、実行時に資格情報を入力するようユーザーに求めます。資格情報をファイルに保存するのは避けてください。資格情報を保存する必要がある場合は、Win32 CryptoAPI を使用して暗号化してください。
プログラム変数に対して一括コピー関数を直接使用するには
環境ハンドルと接続ハンドルを割り当てます。
SQL_COPT_SS_BCP と SQL_BCP_ON を設定して、一括コピー操作を有効にします。
SQL Server に接続します。
bcp_init を呼び出して、次の情報を設定します。
一括コピー操作の対象になるテーブルまたはビューの名前。
データ ファイルの名前には NULL を指定します。
一括コピー エラー メッセージを受け取るデータ ファイルの名前 (メッセージ ファイルを使用しない場合は NULL を指定します)。
コピーの方向 (アプリケーションからビューまたはテーブルへのコピーの場合は DB_IN、テーブルまたはビューからアプリケーションへのコピーの場合は DB_OUT)。
一括コピーする各列で bcp_bind を呼び出して、列をプログラム変数にバインドします。
プログラム変数にデータを格納したら、bcp_sendrow を呼び出してデータ行を送信します。
何行かを送信したら、bcp_batch を呼び出して、送信済みの行にチェックポイントを作成します。少なくとも 1,000 行に 1 回の割合で bcp_batch を呼び出すことをお勧めします。
すべての行を送信したら、bcp_done を呼び出して操作を終了します。
一括コピー操作の実行中に、bcp_colptr や bcp_collen を呼び出して、プログラム変数の場所や長さを変えることができます。さまざまな一括コピー オプションを設定するには、bcp_control を使用します。text、ntext、および image のセグメント データをサーバーに送信するには、bcp_moretext を使用します。