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::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 结构数组的位置的指针。 |