共用方式為


ISSCommandWithParameters::GetParameterProperties (OLE DB)

傳回 SSPARAMPROPS 屬性集結構的陣列,而且每個 UDT 或 XML 參數使用一個 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 為零,或者發生 DB_E_ERRORSOCCURRED 之外的錯誤,提供者就不會配置任何記憶體,也無法確保輸出時,prgParamProperties 為 Null 指標。

傳回碼值

除了無法引發 DB_S_ERRORSOCCURRED 和 DB_E_ERRORSOCCURED 之外,GetParameterProperties 方法會傳回與核心 OLE DB ICommandProperties::GetProperties 方法相同的錯誤碼。

備註

相對於 GetParameterInfo 而言,ISSCommandWithParameters::GetParameterProperties 的行為一致。如果尚未呼叫 ISSCommandWithParameters::SetParameterPropertiesSetParameterInfo,或者已經在 cParams 等於零的情況下進行呼叫,GetParameterInfo 會衍生參數資訊,並傳回此資訊。如果至少已經針對一個參數呼叫 ISSCommandWithParameters::SetParameterPropertiesSetParameterInfoISSCommandWithParameters::GetParameterProperties 僅會針對已經呼叫 ISSCommandWithParameters::SetParameterProperties 的參數傳回屬性。如果在r ISSCommandWithParameters::GetParameterPropertiesGetParameterInfo 之後呼叫 ISSCommandWithParameters::SetParameterPropertiesISSCommandWithParameters::GetParameterProperties 的後續呼叫會針對已經呼叫 ISSCommandWithParameters::SetParameterProperties 的參數,傳回覆寫值。

SSPARAMPROPS 結構定義如下:

struct SSPARAMPROPS {

DBORDINAL iOrdinal;

ULONG cPropertySets;

DBPROPSET *rgPropertySets;

};

成員

描述

iOrdinal

所傳遞參數的序數。

cPropertySets

rgPropertySets 中的 DBPROPSET 結構數目。

rgPropertySets

藉其傳回 DBPROPSET 結構陣列的記憶體指標。