Поделиться через


ISSCommandWithParameters::SetParameterProperties (OLE DB)

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

Скачать драйвер OLE DB

Задает свойства каждого параметра по порядковому номеру или задает массовые свойства параметра, указывая массив структур 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.

См. также

ISSCommandWithParameters (OLE DB)