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;
};
メンバ |
説明 |
---|---|
iOrdinal |
渡されるパラメータの序数 |
cPropertySets |
rgPropertySets 内の DBPROPSET 構造体の数 |
rgPropertySets |
DBPROPSET 構造体の配列を返すメモリへのポインタ |