Share via


IBCPSession::BCPControl (OLE DB)

一括コピー操作のオプションを設定します。

構文

HRESULT BCPControl( 
      int eOption,
      void *iValue);

説明

BCPControl メソッドでは、一括コピー操作のさまざまな制御パラメータを設定します。たとえば、一括コピーがキャンセルされるまでに発生してもかまわないエラーの数、データ ファイルから最初にコピーする行番号や最後にコピーする行番号、バッチ サイズなどを設定します。

また、このメソッドを使用して、SQL Server からデータを一括コピーするときに使用される SELECT ステートメントを指定することもできます。eOption 引数に BCP_OPTION_HINTS を設定し、SELECT ステートメントを含むワイド文字列へのポインタを保持する iValue 引数を設定することができます。

BCPControl メソッドでは、BCP 構造体のメンバ変数を設定して、ユーザーが設定するオプションを有効にします。次に、有効なオプションを示します。

オプション

説明

BCP_OPTION_ABORT

既に実行中の一括コピー操作を停止します。別のスレッドから eOption 引数に BCP_OPTION_ABORT を指定して BCPControl メソッドを呼び出し、実行中の一括コピー操作を停止できます。この場合、iValue 引数は無視されます。

BCP_OPTION_BATCH

バッチごとの行数を指定します。既定値は 0 です。既定値を指定すると、データを抽出するときはテーブル内のすべての行が抽出されることを示し、データを SQL Server にコピーするときはユーザー データ ファイル内のすべての行がコピーされることを示します。BCP_OPTION_BATCH に 1 未満の値を指定すると、既定値にリセットされます。

BCP_OPTION_FILECP

iValue 引数には、データ ファイルのコード ページ番号を指定します。1252 や 850 などのコード ページ番号を指定するか、次のいずれかの値を指定できます。

  • BCP_FILECP_ACP を指定すると、ファイル内のデータには、クライアントの Microsoft Windows® コード ページが使用されます。

  • BCP_FILECP_OEMCP を指定すると、ファイル内のデータには、クライアントの OEM コード ページ (既定) が使用されます。

  • BCP_FILECP_RAW を指定すると、ファイル内のデータには、SQL Server のコード ページが使用されます。

BCP_OPTION_FIRST

ファイルまたはテーブルにコピーするデータの先頭行を指定します。既定値は 1 です。1 未満の値を指定すると、このオプションは既定値にリセットされます。

BCP_OPTION_FIRSTEX

BCP out 操作の場合は、データ ファイルにコピーするための、データベース テーブルの最初の行を指定します。

BCP in 操作の場合は、データベース テーブルにコピーするための、データ ファイルの最初の行を指定します。

iValue パラメータには、その値を含む 64 ビット符号付き整数のアドレスを指定する必要があります。BCPFIRSTEX に渡すことができる最大値は 2^63-1 です。

BCP_OPTION_HINTS

iValue 引数には、ワイド文字列ポインタを指定します。ポインタが指す文字列には、SQL Server 一括コピー処理ヒント、または結果セットを返す Transact-SQL ステートメントを指定します。複数の結果セットを返す Transact-SQL ステートメントを指定すると、1 つ目の結果セット以外はすべて無視されます。

BCP_OPTION_KEEPIDENTITY

iValue 引数を TRUE に設定すると、一括コピー メソッドでは、ID 制約が定義された SQL Server 列用に指定したデータ値が挿入されることを示します。入力ファイルには ID 列の値を指定する必要があります。このオプションを設定しないと、挿入される行に対して新しい ID 値が生成されます。ファイル内に存在する ID 列用のデータはすべて無視されます。

BCP_OPTION_KEEPNULLS

ファイル内の空のデータ値を SQL Server テーブルで NULL 値に変換するかどうかを指定します。iValue 引数を TRUE に設定すると、空のデータ値は SQL Server テーブルで NULL に変換されます。既定では、空の値は SQL Server テーブル内の列の既定値 (存在する場合) に変換されます。

BCP_OPTION_LAST

コピーする最終行を指定します。既定では、すべての行をコピーします。1 未満の値を指定すると、このオプションは既定値にリセットされます。

BCP_OPTION_LASTEX

BCP out 操作の場合は、データ ファイルにコピーするための、データベース テーブルの最後の行を指定します。

BCP in 操作の場合は、データベース テーブルにコピーするための、データ ファイルの最後の行を指定します。

iValue パラメータには、その値を含む 64 ビット符号付き整数のアドレスを指定する必要があります。BCPLASTEX に渡すことができる最大値は 2^63-1 です。

BCP_OPTION_MAXERRS

一括コピー操作が失敗するまでに発生してもかまわないエラーの数を指定します。既定値は 10 です。1 未満の値を指定すると、このオプションは既定値にリセットされます。一括コピーでは、最大 65,535 個のエラーが許容されます。このオプションに 65,535 を超える値を設定しようとすると、65,535 が設定されます。

BCP_OPTION_UNICODEFILE

このオプションに TRUE を設定して、入力ファイルが Unicode ファイル形式であることを指定します。

BCP_OPTION_TEXTFILE

データ ファイルは、バイナリ ファイルではなく、テキスト ファイルです。BCP では、データ ファイルの先頭 2 バイトに含まれる Unicode バイト マーカーをチェックして、テキスト ファイルが Unicode 形式かどうかを検出します。

BCP_OPTION_FILEFMT

データ ファイル形式のバージョン番号を指定します。70 (SQL Server 7.0)、80 (SQL Server 2000)、90 (SQL Server 2005)、または 100 を指定できます。既定値は 100 で、ファイルが SQL Server 2008 形式であることを示します。このオプションは、以前のバージョンのサーバーでサポートされていた形式でデータをエクスポートおよびインポートする際に便利です。たとえば、SQL Server 2000 サーバーのテキスト列から取得したデータを、SQL Server 2005 以降のサーバーの varchar(max) 列にインポートするには、80 を指定する必要があります。同様に、データを varchar(max) 列からエクスポートするときに 80 を指定すると、データは、テキスト列が SQL Server 2000 形式で保存されるのと同じように保存されるので、SQL Server 2000 サーバーのテキスト列にインポートできます。

BCP_OPTION_FMTXML

XML 形式でフォーマット ファイルが生成されることを指定する場合に使用します。既定では、このオプションは無効で、フォーマット ファイルはテキスト ファイルとして保存されます。XML フォーマット ファイルにより柔軟性が向上しますが、いくつか制約も追加されます。たとえば、以前のフォーマット ファイルでは、1 つのフィールドにプレフィックスとターミネータを同時に指定できましたが、XML フォーマット ファイルでは指定できません。

注意注意
XML フォーマット ファイルがサポートされるのは、SQL Server ツールを SQL Server Native Client と共にインストールした場合だけです。

BCP_OPTION_ROWCOUNT

現在 (または最後) の BCP 操作で処理された行数を返します。

引数

  • eOption[in]
    上記の「解説」で示したいずれかのオプションに設定します。

  • iValue[in]
    指定した eOption の値です。iValue 引数は、将来 64 ビット値に拡張できるように、void ポインタにキャストされる整数値です。

リターン コード値

  • S_OK
    メソッドが成功しました。

  • E_FAIL
    プロバイダ固有のエラーが発生しました。エラーの詳細を確認するには、ISQLServerErrorInfo インターフェイスを使用してください。

  • E_UNEXPECTED
    メソッドの呼び出しが予期されませんでした。たとえば、この関数が呼び出される前に、IBCPSession::BCPInit メソッドが呼び出されなかった場合などです。

  • E_OUTOFMEMORY
    メモリ不足エラーです。

関連項目

概念

その他の技術情報