Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Задает свойства параметра на основе порядкового номера или задает свойства массового параметра, указав массив структур SSPARAMPROPS.
Синтаксис
HRESULT SetParameterProperties(
DB_UPARAMS cParams,
SSPARAMPROPS rgParamProperties[]);
Аргументы
cParams[in]
Количество структур SSPARAMPROPS в массиве rgParamProperties . Если это число равно нулю, ISSCommandWithParameters::SetParameterProperties удалите все свойства, которые могли быть указаны для любых параметров в команде.
rgParamProperties[in]
Массив структур SSPARAMPROPS, которые необходимо задать.
Значения кода возврата
Метод ISSCommandWithParameters::SetParameterProperties возвращает те же коды ошибок, что и основной метод OLE DB ICommandProperties::SetProperties .
Замечания
Задание свойств параметров с помощью этого метода допускается для каждого параметра по порядковой строке или с одним ISSCommandWithParameters::SetParameterProperties вызовом после создания SSPARAMPROPS из массива свойств.
Перед вызовом ISSCommandWithParameters::SetParameterProperties метода SetParameterInfo необходимо вызвать метод. При вызове SetParameterProperties(0, NULL) очищается все указанные свойства параметра, при вызове SetParameterInfo(0,NULL,NULL) очищается все сведения о параметрах, включая все свойства, которые могут быть связаны с параметром.
Вызов ISSCommandWithParameters::SetParameterProperties для указания свойств для параметра, который не имеет типа DBTYPE_XML или DBTYPE_UDT возвращает DB_E_ERRORSOCCURRED или DB_S_ERRORSOCCURRED и помечает поле dwStatus всех СУБД, содержащихся в SSPARAMPROPS для этого параметра с DBPROPSTATUS_NOTSET. Массив DBPROP каждого DBPROPSET, содержащегося в SSPARAMPROPS, должен быть перебрасан, чтобы определить, к каким параметрам относится DB_E_ERRORSOCCURRED или DB_S_ERRORSOCCURRED.
Если 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, позволяют ISSCommandWithParameters::SetParameterProperties получить более точные описания ожидаемых результатов. Эти более точные результаты могут отличаться от значений, возвращаемых ISSCommandWithParameters::SetParameterProperties в предыдущих версиях SQL Server. Дополнительные сведения см. в разделе "Обнаружение метаданных".
| Член | Описание |
|---|---|
| iOrdinal | Порядковый номер переданного параметра. |
| cPropertySets | Количество структур DBPROPSET в rgPropertySets. |
| rgPropertySets | Указатель на буфер, в который будет возвращен массив структур DBPROPSET. |