db_column
Associa uma coluna especificada a uma variável no conjunto de linhas.
[ db_column(ordinal, dbtype, precision, scale, status, length) ]
ordinal
O número da coluna ordinal (ordinal DBCOLUMNINFO
) ou o nome da coluna (cadeia de caracteres ANSI ou Unicode) correspondente a um campo no conjunto de linhas ao qual associar dados. Se você usar números, poderá ignorar ordinais consecutivos (por exemplo: 1, 2, 3, 5). O nome poderá conter espaços se o provedor OLE DB utilizado der suporte a eles. Por exemplo, você pode usar qualquer um dos seguintes formatos:
[db_column("2")] TCHAR szCity[30];
[db_column(L"city_name")] TCHAR szCity[30];
dbtype
(Opcional) Um Indicador de Tipo OLE DB para a entrada da coluna.
precisão
(Opcional) A precisão a ser usada para a entrada da coluna. Para obter detalhes, confira a descrição do elemento bPrecision
da estrutura DBBINDING
scale
(Opcional) A escala a ser usada para a entrada da coluna. Para detalhes, confira a descrição do elemento bScale
da estrutura DBBINDING
status
(Opcional) Uma variável de membro usada para manter o status desta coluna. O status indica se o valor da coluna é um valor de dados ou algum outro valor, como NULL. Para valores possíveis, confira Status na Referência do Programador OLE DB.
length
(Opcional) Uma variável de membro usada para manter o tamanho da coluna em bytes.
A db_column associa a coluna de tabela especificada a uma variável no conjunto de linhas. Ela delimita dados de membro que podem participar da associação baseada em IAccessor
do OLE DB. Esse atributo configura o mapa de coluna normalmente definido usando as macros de consumidor do OLE DB BEGIN_COLUMN_MAP, END_COLUMN_MAP e COLUMN_ENTRY. Elas manipulam a estrutura DBBINDING do OLE DB para associar a coluna especificada. Cada membro marcado com o atributo db_column ocupará uma entrada no mapa na forma de uma entrada de coluna. Portanto, você chama esse atributo de onde colocaria o mapa de coluna, ou seja, na classe de comando ou tabela.
Use db_column em conjunto com os atributos db_table ou db_command.
Quando o provedor de atributos de consumidor aplica esse atributo a uma classe, o compilador renomeia a classe como _YourClassNameAccessor, em que YourClassName é o nome que você deu à classe, e o compilador também criará uma classe chamada YourClassName, que deriva de _YourClassNameAccessor. No Modo de Exibição de Classe, você verá ambas as classes.
Para obter um exemplo desse atributo usado em um aplicativo, consulte MultiRead.
Este exemplo associa uma coluna em uma tabela a um membro de dados long
e especifica campos de status e comprimento.
// 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;
};
Este exemplo associa quatro colunas a um long
, uma cadeia de caracteres, um carimbo de data/hora e um inteiro DB_NUMERIC
, nessa ordem.
// 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;
};
Contexto do atributo | Valor |
---|---|
Aplicável ao | class , struct membro, método |
Repetível | Não |
Atributos obrigatórios | Nenhum |
Atributos inválidos | Nenhum |
Para obter mais informações sobre os contextos de atributo, confira Contextos de atributo.