Compartir a través de


db_param

Asocia la variable miembro especificada a un parámetro de entrada o salida y delimita la variable.

Sintaxis

[ db_param(ordinal, paramtype="DBPARAMIO_INPUT", dbtype, precision, scale, status, length) ]

Parámetros

ordinal
Número de columna (ordinal DBCOLUMNINFO) correspondiente a un campo del conjunto de filas al que se van a enlazar los datos.

paramtype
(Opcional) Tipo que se va a establecer para el parámetro. Los proveedores solo admiten los tipos de E/S de parámetros admitidos por el origen de datos subyacente. El tipo es una combinación de uno o varios valores DBPARAMIOENUM:

  • DBPARAMIO_INPUT Un parámetro de entrada.

  • DBPARAMIO_OUTPUT Un parámetro de salida.

  • DBPARAMIO_NOTPARAM El descriptor de acceso no tiene ningún parámetro. Al establecer eParamIO en este valor en los descriptores de acceso de la fila, se recuerda al usuario que los parámetros se omiten.

dbtype
(Opcional) Indicador de tipo OLE DB para la entrada de columna.

precisión
(Opcional) Precisión que se usará para la entrada de columna. Para obtener más información, consulte la descripción del elemento bPrecision de la estructura DBBINDING.

scale
(Opcional) Escala que se usará para la entrada de columna. Para obtener más información, consulte la descripción del elemento bScale de la estructura DBBINDING.

status
(Opcional) Variable de miembro que se usa para contener el estado de esta columna. El estado indica si el valor de la columna es un valor de datos o algún otro valor, como NULL. Para conocer los valores posibles, consulte Estado en la referencia del programador de OLE DB.

length
(Opcional) Variable de miembro que se usa para contener el tamaño de la columna en bytes.

Comentarios

db_param define parámetros que se usan en comandos; por lo tanto, se usa con db_command. Por ejemplo, puede usar db_param para enlazar parámetros en consultas SQL o procedimientos almacenados. Los parámetros de un procedimiento almacenado se indican mediante signos de interrogación (?). Los miembros de datos deben enlazarse en el orden en el que aparecen los parámetros.

db_param delimita los datos de miembro que pueden participar en un enlace basado en ICommandWithParameters de OLE DB. Establece el tipo de parámetro (entrada o salida), el tipo de OLE DB, la precisión, la escala, el estado y la longitud del parámetro especificado. Este atributo inserta las macros de consumidor BEGIN_PARAM_MAP ... END_PARAM_MAP de OLE DB. Cada miembro que marque con el atributo db_param ocupará una entrada en la asignación en forma de COLUMN_ENTRY.

db_param se usa junto con los atributos db_table o db_command.

Cuando el proveedor de atributos de consumidor aplica este atributo a una clase, el compilador cambiará el nombre de la clase a _NombreClaseDescriptorAcceso, donde NombreClase es el nombre asignado a la clase; el compilador también creará una clase denominada NombreClase, que deriva de _NombreClaseDescriptorAcceso. En Vista de clases verá ambas clases.

Ejemplo

En el ejemplo siguiente se crea una clase de comando basada en el procedimiento almacenado SalesbyYear en la base de datos Northwind. Asocia el primer parámetro del procedimiento almacenado a la variable m_RETURN_VALUE y lo define como un parámetro de salida. Asocia los dos últimos parámetros (entrada) con m_Beginning_Date y m_Ending_Date.

En el ejemplo siguiente se asocia la variable nOutput a un parámetro de salida.

// db_param.cpp
// compile with: /LD
#include <atlbase.h>
#include <atlplus.h>
#include <atldbcli.h>

[ db_source(L"my_connection_string"),
  db_command(L"{ ? = CALL dbo.\"Sales by Year\"(?,?) }")
]
struct CSalesbyYear {
   DBSTATUS m_dwShippedDateStatus;
   DBSTATUS m_dwOrderIDStatus;
   DBSTATUS m_dwSubtotalStatus;
   DBSTATUS m_dwYearStatus;

   DBLENGTH m_dwShippedDateLength;
   DBLENGTH m_dwOrderIDLength;
   DBLENGTH m_dwSubtotalLength;
   DBLENGTH m_dwYearLength;

   // Bind columns
   [ db_column("1", status="m_dwShippedDateStatus", length="m_dwShippedDateLength") ] DBTIMESTAMP m_ShippedDate;
   [ db_column("2", status="m_dwOrderIDStatus", length="m_dwOrderIDLength") ] LONG m_OrderID;
   [ db_column("3", status="m_dwSubtotalStatus", length="m_dwSubtotalLength") ] CURRENCY m_Subtotal;
   [ db_column("4", status="m_dwYearStatus", length="m_dwYearLength") ] TCHAR m_Year[31];

   // Bind parameters
   [ db_param("1", paramtype="DBPARAMIO_OUTPUT") ] LONG m_RETURN_VALUE;
   [ db_param("2", paramtype="DBPARAMIO_INPUT") ] DBTIMESTAMP m_Beginning_Date;
   [ db_param("3", paramtype="DBPARAMIO_INPUT") ] DBTIMESTAMP m_Ending_Date;
};

Requisitos

Contexto de atributo Valor
Se aplica a class, struct, miembro, método, local
Reiterativo No
Atributos requeridos Ninguno
Atributos no válidos Ninguno

Para obtener más información acerca de los contextos de atributo, consulte Contextos de atributo.

Consulte también

Atributos de consumidor OLE DB