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.