次の方法で共有


IBCPSession::BCPColumns (OLE DB)

SQL Server テーブル内の列にバインドされるフィールド数を設定します。

構文

  
HRESULT BCPColumns(   
DBCOUNTITEMnColumns);  

解説

このメソッドは、内部的に IBCPSession::BCPColFmt を呼び出して、フィールド データの既定値を設定します。 これらの既定値は、IBCPSession::BCPInit を使用してテーブル名を指定するときに、プロバイダーが内部的に取得する SQL Server の列情報を基に設定されます。

Note

有効なファイル名を指定して BCPInit を呼び出した後でのみ、このメソッドを呼び出すことができます。

既定とは異なる形式のユーザー ファイルを使用する場合にのみ、このメソッドを呼び出す必要があります。 ユーザー ファイルの既定の形式の詳細については、BCPInit メソッドを参照してください。

独自のファイル形式を完全に定義するために、BCPColumns メソッドを呼び出した後、ユーザー ファイル内の列ごとに BCPColFmt メソッドを呼び出す必要があります。

引数

nColumns[in]
ユーザー ファイル内のフィールドの総数です。 ユーザー ファイルから SQL Server テーブルへのデータの一括コピーを準備していて、ユーザー ファイル内のすべてのフィールドをコピーしない場合でも、nColumns 引数にユーザー ファイル内のフィールドの総数を設定する必要があります。 その後、スキップするフィールドを BCPColFmt を使って指定できます。

リターン コードの値

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

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

E_UNEXPECTED
メソッドの呼び出しが予期されませんでした。 たとえば、このメソッドを呼び出す前に、BCPInit メソッドが呼び出されなかった場合などです。 また、1 回の一括コピー操作でこのメソッドが複数回呼び出されたときもこのリターン コードが返されます。

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

参照

IBCPSession (OLE DB)
一括コピー操作の実行