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


ISSCommandWithParameters::GetParameterProperties (OLE DB)

Возвращает массив структур SSPARAMPROPS, представляющих собой множества свойств, по одному множеству свойств SSPARAMPROPS на каждый параметр UDT (типа, определяемого пользователем) или 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 NULL на выходе.

Значения кода возврата

Метод GetParameterProperties возвращает те же коды ошибок, что и базовый метод OLE DB ICommandProperties::GetProperties, за исключением того факта, что он не может вернуть DB_S_ERRORSOCCURRED или DB_E_ERRORSOCCURED.

Замечания

Метод ISSCommandWithParameters::GetParameterProperties ведет себя в соответствии с функцией GetParameterInfo. Если метод ISSCommandWithParameters::SetParameterProperties или функция SetParameterInfo не были вызваны, или были вызваны с параметром cParams, равным нулю, GetParameterInfo выводит информацию о параметре и возвращает указатель this если не указатель, то не очень понятно, что она тогда возвращает. Если хотя бы для одного параметра был вызван один из методов 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.

См. также

Справочник