次の方法で共有


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 を呼び出す前に、各 DBPROP 構造体の vValue プロパティに対して VariantClear を呼び出す必要があります。これは、変数に参照型 (BSTR など) が含まれている場合にメモリ リークを防ぐためです。pcParams の出力が 0 か、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::SetParameterPropertiesISSCommandWithParameters::GetParameterProperties または GetParameterInfo の後に呼び出された場合、後続の ISSCommandWithParameters::GetParameterProperties の呼び出しにより、ISSCommandWithParameters::SetParameterProperties の呼び出しの対象となったパラメータの値が上書きされます。

SSPARAMPROPS 構造体は、次のように定義されています。

struct SSPARAMPROPS {

DBORDINAL iOrdinal;

ULONG cPropertySets;

DBPROPSET *rgPropertySets;

};

メンバ

説明

iOrdinal

渡されるパラメータの序数

cPropertySets

rgPropertySets 内の DBPROPSET 構造体の数

rgPropertySets

DBPROPSET 構造体の配列を返すメモリへのポインタ

関連項目

参照