ISSCommandWithParameters::GetParameterProperties (OLE DB)
Применимо:SQL Server
База данных SQL Azure Управляемый экземпляр SQL Azure
azure Synapse Analytics Analytics
Platform System (PDW)
Возвращает массив структур 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_ERRORSOCCURRED.
Замечания
Метод 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. |