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 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. |