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