Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Establece las propiedades de parámetro por parámetro por ordinal o establece propiedades de parámetros masivas especificando una matriz de estructuras SSPARAMPROPS.
Sintaxis
HRESULT SetParameterProperties(
DB_UPARAMS cParams,
SSPARAMPROPS rgParamProperties[]);
Argumentos
cParams[in]
Número de estructuras SSPARAMPROPS en la matriz rgParamProperties . Si este número es cero, ISSCommandWithParameters::SetParameterProperties eliminará todas las propiedades que podrían haberse especificado para los parámetros del comando.
rgParamProperties[in]
Matriz de estructuras SSPARAMPROPS que se van a establecer.
Valores de código de retorno
El ISSCommandWithParameters::SetParameterProperties método devuelve los mismos códigos de error que el método OLE DB principal ICommandProperties::SetProperties .
Observaciones
El establecimiento de propiedades de parámetros con este método se permite por parámetro por ordinal o con una sola ISSCommandWithParameters::SetParameterProperties llamada una vez que se ha compilado SSPARAMPROPS a partir de la matriz de propiedades.
Se debe llamar al método SetParameterInfo antes de llamar al ISSCommandWithParameters::SetParameterProperties método . La llamada SetParameterProperties(0, NULL) borra todas las propiedades de parámetro especificadas, mientras que la llamada SetParameterInfo(0,NULL,NULL) borra toda la información de parámetros, incluidas las propiedades que podrían estar asociadas a un parámetro.
Al llamar ISSCommandWithParameters::SetParameterProperties a para especificar propiedades para un parámetro que no es de tipo DBTYPE_XML o DBTYPE_UDT devuelve DB_E_ERRORSOCCURRED o DB_S_ERRORSOCCURRED y marca el campo dwStatus de todos los DBPROPs contenidos en SSPARAMPROPS para ese parámetro con DBPROPSTATUS_NOTSET. La matriz DBPROP de cada DBPROPSET contenida en SSPARAMPROPS debe atravesarse para detectar a qué parámetro se refiere el DB_E_ERRORSOCCURRED o DB_S_ERRORSOCCURRED.
Si ISSCommandWithParameters::SetParameterProperties se llama a para especificar las propiedades de los parámetros cuya información de parámetro aún no se ha establecido con SetParameterInfo, el proveedor devuelve E_UNEXPECTED con el siguiente mensaje de error:
No se puede llamar al método SetParameterProperties para los parámetros especificados sin llamar primero al método SetParameterInfo. La información del parámetro debe establecerse antes de establecer las propiedades del parámetro.
Si la llamada a ISSCommandWithParameters::SetParameterProperties contiene algunos parámetros en los que se ha establecido la información del parámetro y algunos parámetros en los que no se ha establecido la información del parámetro, las propiedades dwStatus en el DBPROPSET del conjunto de propiedades SSPARAMPROPS devolverán con DBSTATUS_NOTSET.
La estructura SSPARAMPROPS se define del siguiente modo:
struct SSPARAMPROPS {
DBORDINAL iOrdinal;
ULONG cPropertySets;
DBPROPSET *rgPropertySets;
};
Las mejoras en el motor de base de datos a partir de SQL Server 2012 permiten a ISSCommandWithParameters::SetParameterProperties obtener descripciones más precisas de los resultados esperados. Estos resultados más precisos pueden diferir de los valores devueltos por ISSCommandWithParameters::SetParameterProperties en versiones anteriores de SQL Server. Para obtener más información, vea Detección de metadatos.
| Miembro | Descripción |
|---|---|
| iOrdinal | El ordinal del parámetro que se ha pasado. |
| cPropertySets | El número de estructuras DBPROPSET de rgPropertySets. |
| rgPropertySets | Un puntero a la memoria que devuelve una matriz de estructuras DBPROPSET. |