Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Возвращает массив структур 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 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. |