ISSCommandWithParameters::SetParameterProperties (OLE DB)
序数順に各パラメーターのパラメーター プロパティを設定するか、SSPARAMPROPS 構造体の配列を指定して、一括でパラメーター プロパティを設定します。
構文
HRESULT SetParameterProperties(
DB_UPARAMS cParams,
SSPARAMPROPS rgParamProperties[]);
引数
cParams[in]
rgParamProperties 配列内の SSPARAMPROPS 構造体の数。 この数が 0 の場合、ISSCommandWithParameters::SetParameterProperties では、コマンドのパラメーターに指定されているすべてのプロパティを削除します。rgParamProperties[in]
設定する SSPARAMPROPS 構造体の配列。
リターン コード値
ISSCommandWithParameters::SetParameterProperties メソッドでは、主要な OLE DB ICommandProperties::SetProperties メソッドと同じエラー コードを返します。
説明
このメソッドを使用したパラメーター プロパティの設定は、各パラメーターに対して序数順に行うか、プロパティ配列から SSPARAMPROPS が構築されるたびに ISSCommandWithParameters::SetParameterProperties を 1 回呼び出すことによって行うことができます。
ISSCommandWithParameters::SetParameterProperties メソッドを呼び出す前に、SetParameterInfo メソッドを呼び出す必要があります。 SetParameterProperties(0, NULL) を呼び出すと、指定したパラメーター プロパティがすべて消去されます。また、SetParameterInfo(0,NULL,NULL) を呼び出すと、パラメーターに関連付けられているすべてのプロパティを含めて、パラメーターに関するすべての情報が消去されます。
ISSCommandWithParameters::SetParameterProperties を呼び出すときに DBTYPE_XML 型または DBTYPE_UDT 型以外のパラメーターのプロパティを指定すると、DB_E_ERRORSOCCURRED または DB_S_ERRORSOCCURRED が返され、そのパラメーターの SSPARAMPROPS に含まれているすべての DBPROP の dwStatus フィールドに DBPROPSTATUS_NOTSET が設定されます。 DB_E_ERRORSOCCURRED または DB_S_ERRORSOCCURRED が指しているパラメーターを検出するには、SSPARAMPROPS に含まれている各 DBPROPSET の DBPROP 配列をすべて調べる必要があります。
ISSCommandWithParameters::SetParameterProperties を呼び出すときに、SetParameterInfo によって情報が設定されていないパラメーターのプロパティを指定すると、プロバイダーは次のエラー メッセージと共に E_UNEXPECTED を返します。
パラメーターを指定して SetParameterProperties メソッドを呼び出す場合は、最初に SetParameterInfo メソッドを呼び出す必要があります。 パラメーターのプロパティを設定する前に、パラメーター情報を設定する必要があります。
ISSCommandWithParameters::SetParameterProperties を呼び出すときに、情報が設定されているパラメーターと設定されていないパラメーターが含まれている場合、SSPARAMPROPS プロパティ セットの DBPROPSET 内の dwStatus プロパティに DBSTATUS_NOTSET が設定されて返されます。
SSPARAMPROPS 構造体は、次のように定義されています。
struct SSPARAMPROPS {
DBORDINAL iOrdinal;
ULONG cPropertySets;
DBPROPSET *rgPropertySets;
};
SQL Server 2012 以降のデータベース エンジンの機能強化により、期待される結果のより正確な記述を ISSCommandWithParameters::SetParameterProperties で取得できるようになりました。 これらのより正確な結果は、以前のバージョンの SQL Server の ISSCommandWithParameters::SetParameterProperties によって返される結果とは異なる可能性があります。 詳細については、「メタデータの検出」を参照してください。
メンバー |
説明 |
---|---|
iOrdinal |
渡されるパラメーターの序数 |
cPropertySets |
rgPropertySets 内の DBPROPSET 構造体の数 |
rgPropertySets |
DBPROPSET 構造体の配列を返すメモリへのポインター |