Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Относится к:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Система аналитической платформы (PDW)
SQL база данных в Microsoft Fabric
Задает свойства каждого параметра по порядковому номеру или задает массовые свойства параметра, указывая массив структур SSPARAMPROPS.
Синтаксис
HRESULT SetParameterProperties(
DB_UPARAMS cParams,
SSPARAMPROPS rgParamProperties[]);
Аргументы
cParams[in]
Количество структур SSPARAMPROPS в массиве rgParamProperties. Если это число равно 0, то метод ISSCommandWithParameters::SetParameterProperties удалит все свойства, которые могли быть указаны для всех параметров команды.
rgParamProperties[in]
Массив задаваемых структур SSPARAMPROPS.
Значения кода возврата
Метод ISSCommandWithParameters::SetParameterProperties возвращает те же коды ошибок, что и базовый метод OLE DB ICommandProperties::SetProperties.
Замечания
С помощью этого метода разрешается задавать свойства для каждого параметра по порядковому номеру параметра или путем одного вызова метода ISSCommandWithParameters::SetParameterProperties, если структура SSPARAMPROPS строится из массива свойств.
Метод SetParameterInfo необходимо вызывать до вызова метода ISSCommandWithParameters::SetParameterProperties. Вызов метода SetParameterProperties(0, NULL) очищает все указанные свойства параметра, тогда как вызов метода SetParameterInfo(0,NULL,NULL) очищает все сведения о параметре, в том числе все свойства, которые могут быть связаны с параметром.
Вызов метода ISSCommandWithParameters::SetParameterProperties с целью указания свойств параметра, тип которого отличен от DBTYPE_XML или DBTYPE_UDT, возвратит DB_E_ERRORSOCCURRED или DB_S_ERRORSOCCURRED и пометит поле dwStatus как DBPROPSTATUS_NOTSET для всех структур DBPROP, содержащихся в структурах SSPARAMPROPS для этого параметра. Чтобы обнаружить, к какому параметру относится DB_E_ERRORSOCCURRED или DB_S_ERRORSOCCURRED, необходимо пройти по массиву DBPROP каждого набора DBPROPSET, содержащегося в структуре SSPARAMPROPS.
Если метод ISSCommandWithParameters::SetParameterProperties вызывается, чтобы задать свойства параметров, сведения о которых еще не были заданы с помощью метода SetParameterInfo, то поставщик возвратит E_UNEXPECTED со следующим сообщением об ошибке:
Невозможно вызвать метод SetParameterProperties для указанных параметров, не вызывая предварительно метод SetParameterInfo. До задания свойств параметров необходимо задать сведения о параметрах.
Если вызов метода ISSCommandWithParameters::SetParameterProperties содержит некоторые параметры с заданными сведениями и некоторые параметры с незаданными сведениями, то свойства dwStatus в структуре DBPROPSET набора свойств SSPARAMPROPS будут возвращены со значением DBSTATUS_NOTSET.
Структура SSPARAMPROPS определена следующим образом.
struct SSPARAMPROPS {
DBORDINAL iOrdinal;
ULONG cPropertySets;
DBPROPSET *rgPropertySets;
};
Улучшения ядра СУБД, начиная с SQL Server 2012 (11.x), позволяют ISSCommandWithParameters::SetParameterProperties получить более точные описания ожидаемых результатов. Эти более точные результаты могут отличаться от значений, возвращаемых ISSCommandWithParameters::SetParameterProperties в предыдущих версиях SQL Server. Дополнительные сведения см. в разделе Обнаружение метаданных.
| Элемент | Description |
|---|---|
| iOrdinal | Порядковый номер переданного параметра. |
| cPropertySets | Количество структур DBPROPSET в rgPropertySets. |
| rgPropertySets | Указатель на буфер, в который будет возвращен массив структур DBPROPSET. |