Compartir a través de


ISSCommandWithParameters::SetParameterProperties (OLE DB)

Establece las propiedades de parámetro por cada parámetro por ordinal o establece propiedades masivas de parámetro mediante la especificación de 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 la información de parámetro, 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;

};

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