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


ISSCommandWithParameters::SetParameterProperties (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;

};

Член

Описание

iOrdinal

Порядковый номер переданного параметра.

cPropertySets

Количество структур DBPROPSET в rgPropertySets.

rgPropertySets

Указатель на буфер, в который будет возвращен массив структур DBPROPSET.

См. также

Справочник