适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
Analytics Platform System (PDW)
返回 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 属性调用 ,以防止当变量包含引用类型(如 BSTR)时发生内存泄漏。 如果 pcParams 在输出时为零或者发生了 DB_E_ERRORSOCCURRED 之外的错误,则提供程序不分配任何内存,且确保 prgParamProperties 在输出时是一个空指针 。
返回代码值
GetParameterProperties
方法返回与核心 OLE DB ICommandProperties::GetProperties
方法相同的错误代码,但无法引发DB_S_ERRORSOCCURRED和DB_E_ERRORSOCCURRED。
备注
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 结构数组的位置的指针。 |