SQL Server Native Client 中的 ISSCommandWithParameters::GetParameterProperties (OLE DB)

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

重要

已从 SQL Server 2022 (16.x) 和 SQL Server Management Studio 19 (SSMS) 中移除 SQL Server Native Client(通常缩写为 SNAC)。 不建议在新的开发工作中使用 SQL Server Native Client OLE DB 提供程序(SQLNCLI 或 SQLNCLI11)和旧版 Microsoft OLE DB Provider for SQL Server (SQLOLEDB)。 此后请切换到新的 Microsoft OLE DB Driver (MSOLEDBSQL) for SQL Server

返回 SSPARAMPROPS 属性集结构的数组,每个 UDT 或 XML 参数对应一个 SSPARAMPROPS 属性集。

语法

HRESULT GetParameterProperties(  
      DB_UPARAMS *pcParams,  
      SSPARAMPROPS **prgParamProperties);  

参数

pcParams[out][in]
一个指向内存的指针,该内存包含 prgParamProperties 中返回的 SSPARAMPROPS 结构数量 。

prgParamProperties[out]
指向内存中将返回 SSPARAMPROPS 结构数组的位置的指针。 提供程序为结构分配内存,并将地址返回到此内存;使用者在不再需要结构时,使用 IMalloc::Free 释放此内存。 在调用 IMalloc::Free for prgParamProperties 之前,使用者还必须为每个 DBPROP 结构的 vValue 属性调用 VariantClear,以便在变量包含引用类型(如 BSTR)的情况下防止内存泄漏。如果输出时 pcParams 为零,或者发生DB_E_ERRORSOCCURRED以外的错误,提供程序不会分配任何内存,并确保 prgParamProperties 是输出上的 null 指针。

返回代码值

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::SetParameterProperties 是在 ISSCommandWithParameters::GetParameterProperties 或 GetParameterInfo 之后调用的,则对 ISSCommandWithParameters::GetParameterProperties 的后续调用将返回为其调用 ISSCommandWithParameters::SetParameterProperties 的参数的重写值

SSPARAMPROPS 结构的定义如下所示:

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

另请参阅

ISSCommandWithParameters (OLE DB)