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