コマンドを実行します。必要に応じてコマンドを連結できます。
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 が設定されます。If
操作内容
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