Compartir a través de


ISSCommandWithParameters::SetParameterProperties (OLE DB)

Establece las propiedades de los parámetros por cada parámetro por ordinal o establece las propiedades masivas de los parámetro especificando una matriz de estructuras SSPARAMPROPS.

Sintaxis

HRESULT SetParameterProperties(
      DB_UPARAMS cParams, 
      SSPARAMPROPS rgParamProperties[]);

Argumentos

  • cParams[entrada]
    El número de estructuras SSPARAMPROPS en la matriz rgParamProperties. Si este número es cero, ISSCommandWithParameters::SetParameterProperties eliminará todas las propiedades que se puedan haber especificado en cualquier parámetro del comando.

  • rgParamProperties[entrada]
    Una matriz de estructuras SSPARAMPROPS que se van a establecer.

Valores de código de retorno

El método ISSCommandWithParameters::SetParameterProperties devuelve los mismos códigos de error que el método ICommandProperties::SetProperties de OLE DB básico.

Comentarios

El establecimiento de propiedades de parámetro con este método se permite por parámetro y por ordinal o mediante una única llamada a ISSCommandWithParameters::SetParameterProperties una vez que se ha generado SSPARAMPROPS desde la matriz de propiedades.

Se debe llamar al método SetParameterInfo antes de llamar al método ISSCommandWithParameters::SetParameterProperties. La llamada a SetParameterProperties(0, NULL) borra todas las propiedades de parámetro especificadas, en tanto que la llamada a SetParameterInfo(0,NULL,NULL) borra toda la información de parámetros, incluidas las propiedades que puedan estar asociadas a un parámetro.

La llamada a ISSCommandWithParameters::SetParameterProperties para especificar propiedades de 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 todas las DBPROP incluidas en SSPARAMPROPS para ese parámetro con DBPROPSTATUS_NOTSET. Se debe recorrer la matriz DBPROP de cada DBPROPSET incluido en SSPARAMPROPS para detectar a qué parámetro hace referencia DB_E_ERRORSOCCURRED o DB_S_ERRORSOCCURRED.

Si se llama a ISSCommandWithParameters::SetParameterProperties para especificar las propiedades de parámetros cuya información de parámetro todavía 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 de parámetro debe configurarse antes que las propiedades de parámetro.

Si la llamada a ISSCommandWithParameters::SetParameterProperties contiene algunos parámetros donde se ha establecido la información de parámetro y algunos parámetros donde no se ha establecido, las propiedades dwStatus en DBPROPSET del conjunto de propiedades SSPARAMPROPS devolverán 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 que devuelve ISSCommandWithParameters::SetParameterProperties en las 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.

Vea también

Referencia

ISSCommandWithParameters (OLE DB)