傳回 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,以避免在 Variant 包含參考型別(例如 BSTR)的情況下發生記憶體流失。如果輸出上的pcParams為零,或發生DB_E_ERRORSOCCURRED以外的錯誤,提供者不會配置任何記憶體,並確保prgParamProperties是輸出上的Null指標。
傳回碼值
GetParameterProperties 方法會傳回與核心 OLE DB ICommandProperties::GetProperties 方法相同的錯誤碼,但無法引發DB_S_ERRORSOCCURRED和DB_E_ERRORSOCCURED。
備註
ISSCommandWithParameters::GetParameterProperties 與 GetParameterInfo 一致。 如果 ISSCommandWithParameters::SetParameterProperties 或 SetParameterInfo 尚未呼叫或呼叫 cParams 等於零,GetParameterInfo 會衍生參數資訊並傳回此參數。 如果至少有一個參數呼叫 ISSCommandWithParameters::SetParameterProperties 或 SetParameterInfo,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 結構陣列的記憶體指標。 |