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


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;

};

Член Описание
iOrdinal Порядковый номер переданного параметра.
cPropertySets Количество структур DBPROPSET в rgPropertySets.
rgPropertySets Указатель на буфер, в который будет возвращен массив структур DBPROPSET.

См. также

ISSCommandWithParameters (OLE DB)