ISSCommandWithParameters::GetParameterProperties (OLE DB)

适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics 平台系统(PDW)

下载 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 在输出时是一个空指针 。

返回代码值

GetParameterProperties 方法返回与核心 OLE DB ICommandProperties::GetProperties 方法相同的错误代码,只是不引发 DB_S_ERRORSOCCURRED 和 DB_E_ERRORSOCCURED。

备注

ISSCommandWithParameters::GetParameterProperties 方法与 GetParameterInfo 的行为一致。 如果未调用 ISSCommandWithParameters::SetParameterPropertiesSetParameterInfo,或在 cParams 等于零的情况下调用了它们,GetParameterInfo 将派生参数信息并返回该信息。 如果至少对一个参数调用了 ISSCommandWithParameters::SetParameterPropertiesSetParameterInfo,则 ISSCommandWithParameters::GetParameterProperties 方法仅返回调用的 ISSCommandWithParameters::SetParameterProperties 所针对的参数的属性。 如果在调用 ISSCommandWithParameters::GetParameterPropertiesGetParameterInfo 之后调用了 ISSCommandWithParameters::SetParameterProperties,则对 ISSCommandWithParameters::GetParameterProperties 的后续调用将返回调用的 ISSCommandWithParameters::SetParameterProperties 方法所针对的参数的重写值。

SSPARAMPROPS 结构的定义如下所示:

struct SSPARAMPROPS {

DBORDINAL iOrdinal;

ULONG cPropertySets;

DBPROPSET *rgPropertySets;

};

成员 说明
iOrdinal 所传递参数的序号。
cPropertySets rgPropertySets 中 DBPROPSET 结构的数量 。
rgPropertySets 指向内存中将返回 DBPROPSET 结构数组的位置的指针。

另请参阅

ISSCommandWithParameters (OLE DB)