CCommand::Open
更新 : 2007 年 11 月
コマンドを実行します。必要に応じてコマンドを連結できます。
HRESULT Open(
const CSession& session,
LPCWSTR wszCommand,
DBPROPSET *pPropSet = NULL,
DBROWCOUNT* pRowsAffected = NULL,
REFGUID guidCommand = DBGUID_DEFAULT,
bool bBind = true,
ULONG ulPropSets = 0
) throw( );
HRESULT Open(
const CSession& session,
LPCSTR szCommand,
DBPROPSET *pPropSet = NULL,
DBROWCOUNT* pRowsAffected = NULL,
REFGUID guidCommand = DBGUID_DEFAULT,
bool bBind = true,
ULONG ulPropSets = 0
) throw( );
HRESULT Open(
const CSession& session,
INT szCommand = NULL,
DBPROPSET *pPropSet = NULL,
DBROWCOUNT* pRowsAffected = NULL,
REFGUID guidCommand = DBGUID_DEFAULT,
bool bBind = true,
ULONG ulPropSets = 0
) throw( );
HRESULT Open(
DBPROPSET *pPropSet = NULL,
DBROWCOUNT* pRowsAffected = NULL,
bool bBind = true,
ULONG ulPropSets = 0
) throw( );
パラメータ
session
[入力] コマンドを実行するセッション。wszCommand
[入力] 実行するコマンド。コマンドは Unicode 文字列として渡されます。CAccessor を使用する場合は NULL を指定できます。この場合は、DEFINE_COMMAND マクロに渡した値から、コマンドが取得されます。詳細については、『OLE DB Programmer's Reference』の「ICommand::Execute」を参照してください。szCommand
[入力] wszCommand と同じ値。ただし、ANSI コマンド文字列をとります。このメソッドの 4 番目の形式では NULL 値をとることができます。詳細については、このトピックで後述する「解説」を参照してください。pPropSet
[入力] 設定するプロパティと値を格納した DBPROPSET 構造体の配列へのポインタ。Windows SDK の『OLE DB Programmer's Reference』で「Property Sets and Property Groups」を参照してください。pRowsAffected
[入力/出力] コマンドで操作した行の数を返すメモリへのポインタ。*pRowsAffected を NULL にすると、行数が返されません。それ以外の場合は、以下の条件に従って *pRowsAffected が設定されます。条件
設定
pParams の要素 cParamSets が 1 より大きい
*pRowsAffected は、実行時に指定されたすべてのパラメータによって影響を受けた行の総数を表します。
操作された行数がわからない
**pRowsAffected が –1 に設定されます。
コマンドで行が更新、削除、または挿入されない
*pRowsAffected は未定義になります。
guidCommand
[入力] プロバイダがコマンド テキストの解析時に使用する構文と一般ルールを指定する GUID。詳細については、『OLE DB Programmer's Reference』の「ICommandText::GetCommandText」と「ICommandText::SetCommandText」を参照してください。bBind
[入力] 実行後にコマンドを自動的に連結するかどうかを指定します。既定値の true では、コマンドが自動的に連結されます。bBind に false を指定すると、コマンドの自動連結が行われないため、プログラマが手動で連結できます。(手動での連結は、特に OLAP ユーザーに関係があります。)ulPropSets
[入力] 引数 pPropSet で渡される DBPROPSET 構造体の数。
戻り値
標準の HRESULT を返します。
解説
Open の最初から 3 番目までの形式はセッションをとり、コマンドを作成し、コマンドを実行します。必要に応じてパラメータを連結します
Open の最初の形式は Unicode コマンド文字列をとります。既定値はありません。
Open の 2 番目の形式は、既存の ANSI アプリケーションとの下位互換性のために用意されている ANSI コマンド文字列をとります。既定値はありません。
Open の 3 番目の形式では、int 型の既定値が NULL であるため、コマンド文字列を NULL に指定できます。この形式は、NULL が int 型であるため、Open(session, NULL); または Open(session); を呼び出すために用意されています。このバージョンでは、int パラメータを NULL に指定することが必要です。
コマンドが作成済みであり、Prepare を 1 回実行してからコマンドを複数回実行する場合は、Open の 4 番目の形式を使用します。
メモ : |
---|
Open が Execute を呼び出すと、Execute は GetNextResult を呼び出します。 |
必要条件
ヘッダー : atldbcli.h