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


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

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform 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_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;
};
Элемент Description
iOrdinal Порядковый номер переданного параметра.
cPropertySets Количество структур DBPROPSET в rgPropertySets.
rgPropertySets Указатель на буфер, в который будет возвращен массив структур DBPROPSET.

См. также

ISSCommandWithParameters (OLE DB)