Поделиться через


ISSCommandWithParameters::GetParameterProperties в собственном клиенте SQL Server (OLE DB)

Применимо:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azureazure Synapse Analytics AnalyticsPlatform System (PDW)

Внимание

Собственный клиент SQL Server (часто сокращенный SNAC) был удален из SQL Server 2022 (16.x) и SQL Server Management Studio 19 (SSMS). Поставщик OLE DB собственного клиента SQL Server (SQLNCLI или SQLNCLI11) и устаревший поставщик Microsoft OLE DB для SQL Server (SQLOLEDB) не рекомендуется для новой разработки. Перейдите на новый драйвер Microsoft OLE DB (MSOLEDBSQL) для SQL Server .

Возвращает массив структур SSPARAMPROPS, представляющих собой множества свойств, по одному множеству свойств SSPARAMPROPS на каждый параметр определяемого пользователем типа или XML.

Синтаксис

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

Аргументы

pcParams[out][in]
Указатель на область памяти, где содержится количество структур SSPARAMPROPS, возвращаемых в параметре prgParamProperties.

prgParamProperties[out]
Указатель на область памяти, в которую будет возвращен массив структур SSPARAMPROPS. Поставщик выделяет память для структур и возвращает адрес этой памяти; Потребитель освобождает эту память с помощью IMalloc::Free , когда она больше не нуждается в структурах. Перед вызовом IMalloc::Free для prgParamProperties потребитель также должен вызвать VariantClear для свойства vValue каждой структуры DBPROP, чтобы предотвратить утечку памяти в случаях, когда вариант содержит ссылочный тип (например, 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;
};
Элемент Description
iOrdinal Порядковый номер переданного параметра.
cPropertySets Количество структур DBPROPSET в rgPropertySets.
rgPropertySets Указатель на буфер, в который будет возвращен массив структур DBPROPSET.

См. также

ISSCommandWithParameters (OLE DB)