ISSCommandWithParameters::GetParameterProperties (OLE DB)
SSPARAMPROPS プロパティ セット構造体の配列を返します。各 UDT または XML パラメーターごとに 1 つの SSPARAMPROPS プロパティ セットが返されます。
構文
HRESULT GetParameterProperties(
DB_UPARAMS *pcParams,
SSPARAMPROPS **prgParamProperties);
引数
pcParams[out][in]
prgParamProperties に返された SSPARAMPROPS 構造体の数を保持するメモリへのポインター。
prgParamProperties[out]
SSPARAMPROPS 構造体の配列が返されるメモリへのポインター。 プロバイダーは構造体にメモリを割り当て、アドレスをこのメモリに返します。コンシューマーは、構造体が不要になったときに IMalloc::Free を使用してこのメモリを解放します。 prgParamProperties に対して IMalloc::Free を呼び出す前に、バリアントに参照型 (BSTR など) が含まれている場合にメモリ リークを防ぐために、コンシューマーは各 DBPROP 構造体の vValue プロパティに対して VariantClear も呼び出す必要があります。pcParams が出力時にゼロであるか、DB_E_ERRORSOCCURRED以外のエラーが発生した場合、プロバイダーはメモリを割り当てず、prgParamProperties が出力時に null ポインターであることを確認します。
リターン コードの値
GetParameterProperties メソッドは、コア OLE DB ICommandProperties::GetProperties メソッドと同じエラー コードを返します。ただし、DB_S_ERRORSOCCURREDとDB_E_ERRORSOCCUREDを発生させることができません。
解説
ISSCommandWithParameters::GetParameterProperties は 、GetParameterInfo に関して一貫して動作します。 ISSCommandWithParameters::SetParameterProperties または SetParameterInfo が呼び出されていないか、cParams が 0 に等しい状態で呼び出された場合、GetParameterInfo はパラメーター情報を派生させ、これを返します。 ISSCommandWithParameters::SetParameterProperties または SetParameterInfo が少なくとも 1 つのパラメーターに対して呼び出されている場合、ISSCommandWithParameters::GetParameterProperties は ISSCommandWithParameters::SetParameterProperties が呼び出されたパラメーターのプロパティのみを返します。 ISSCommandWithParameters::SetParameterProperties が ISSCommandWithParameters::GetParameterProperties または GetParameterInfo の後に呼び出された場合、ISSCommandWithParameters::GetParameterProperties を呼び出すと、ISSCommandWithParameters::SetParameterProperties が呼び出されたパラメーターのオーバーライドされた値が返されます。
SSPARAMPROPS 構造体は、次のように定義されています。
struct SSPARAMPROPS {
DBORDINAL iOrdinal;
ULONG cPropertySets;
DBPROPSET *rgPropertySets;
};
メンバー | 説明 |
---|---|
iOrdinal | 渡されるパラメーターの序数 |
cPropertySets | rgPropertySets 内の DBPROPSET 構造体の数 |
rgPropertySets | DBPROPSET 構造体の配列を返すメモリへのポインター |