Share via


db_column

Enlaza una columna especificada a una variable del conjunto de filas.

Sintaxis

[ db_column(ordinal, dbtype, precision, scale, status, length) ]

Parámetros

ordinal
Número de columna ordinal (ordinal DBCOLUMNINFO) o nombre de columna (cadena ANSI o Unicode) correspondiente a un campo del conjunto de filas al que se van a enlazar los datos. Si usa números, puede omitir ordinales consecutivos (por ejemplo: 1, 2, 3, 5). El nombre puede contener espacios si el proveedor OLE DB que usa lo admite. Por ejemplo, puede usar cualquiera de los formatos siguientes:

[db_column("2")] TCHAR szCity[30];
[db_column(L"city_name")] TCHAR szCity[30];

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_column enlaza la columna especificada de la tabla a una variable del conjunto de filas. Delimita los datos de miembro que pueden participar en un enlace basado en IAccessor de OLE DB. Este atributo configura la asignación de columnas definida normalmente mediante las macros de consumidor BEGIN_COLUMN_MAP, END_COLUMN_MAP y COLUMN_ENTRY de OLE DB. Estas manipulan la estructura DBBINDING de OLE DB para enlazar la columna especificada. Cada miembro que marque con el atributo db_column ocupará una entrada en la asignación de columnas en forma de entrada de columna. Por lo tanto, llame a este atributo donde colocaría la asignación de columnas, es decir, en la clase command o table.

Use db_column 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.

Para obtener un ejemplo de este atributo usado en una aplicación, consulte MultiRead.

Ejemplos

En este ejemplo se enlaza una columna de una tabla a un miembro de datos long y se especifican los campos de estado y longitud.

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

[ db_command(L"Select * from Products") ]
class CProducts {
   DBSTATUS m_dwProductIDStatus;
   DBLENGTH m_dwProductIDLength;

   [ db_column("1", status="m_dwProductIDStatus", length="m_dwProductIDLength") ] LONG m_ProductID;
};

En este ejemplo se enlazan cuatro columnas a un valor long, una cadena de caracteres, una marca de tiempo y un entero DB_NUMERIC, en ese orden.

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

[ db_command(L"Select * from Products") ]
class CProducts {
   [db_column("1")] LONG m_OrderID;
   [db_column("2")] TCHAR m_CustomerID[6];
   [db_column("4")] DB_NUMERIC m_OrderDate;
   [db_column("7", dbtype="DBTYPE_NUMERIC")] DB_NUMERIC m_ShipVia;
};

Requisitos

Contexto de atributo Valor
Se aplica a class, struct, miembro, método
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
Atributos de clase