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


ISSCommandWithParameters::GetParameterProperties (OLE DB)

Возвращает массив структур 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)