Freigeben über


db_column

Bindet eine angegebene Spalte an eine Variable im Rowset.

Syntax

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

Parameter

ordinal
Die Ordnungsspaltennummer (DBCOLUMNINFO Ordnungszahl) oder spaltenname (ANSI oder Unicode-Zeichenfolge), die einem Feld im Rowset entspricht, an das Daten gebunden werden sollen. Wenn Sie Zahlen verwenden, können Sie aufeinander folgende Ordnungszahlen überspringen (z. B. 1, 2, 3, 5). Der Name kann Leerzeichen enthalten, wenn der von Ihnen verwendete OLE DB-Anbieter sie unterstützt. Sie können beispielsweise eines der folgenden Formate verwenden:

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

dbtype
(Optional) Ein OLE DB-Typindikator für den Spalteneintrag.

precision
(Optional) Die Genauigkeit, die für den Spalteneintrag verwendet werden soll. Ausführliche Informationen finden Sie in der Beschreibung des bPrecision Elements der DBBINDING-Struktur.

scale
(Optional) Die Skalierung, die für den Spalteneintrag verwendet werden soll. Ausführliche Informationen finden Sie in der Beschreibung des bScale Elements der DBBINDING-Struktur.

status
(Optional) Eine Membervariable, die zum Halten des Status dieser Spalte verwendet wird. Der Status gibt an, ob der Spaltenwert ein Datenwert oder ein anderer Wert ist, z. B. NULL. Mögliche Werte finden Sie unter Status in der OLE DB-Programmierreferenz.

length
(Optional) Eine Membervariable, die zum Halten der Größe der Spalte in Bytes verwendet wird.

Hinweise

db_column bindet die angegebene Tabellenspalte an eine Variable im Rowset. Sie trennt Memberdaten, die an der OLE DB-basierten IAccessorBindung teilnehmen können. Mit diesem Attribut wird die Spaltenzuordnung eingerichtet, die normalerweise mithilfe der OLE DB-Consumermakros BEGIN_COLUMN_MAP, END_COLUMN_MAP und COLUMN_ENTRY definiert wird. Diese bearbeiten die OLE DBBINDING-Struktur, um die angegebene Spalte zu binden. Jedes Element, das Sie mit dem attribut db_column markieren, belegt einen Eintrag in der Spaltenzuordnung in Form eines Spalteneintrags. Daher rufen Sie dieses Attribut auf, in dem Sie die Spaltenzuordnung( d. h. in der Befehls- oder Tabellenklasse) platzieren würden.

Verwenden Sie db_column in Verbindung mit den Attributen db_table oder db_command.

Wenn der Consumer-Attributanbieter dieses Attribut auf eine Klasse anwendet, benennt der Compiler die Klasse in _YourClassNameAccessor um, wobei YourClassName der Name ist, den Sie der Klasse zugewiesen haben, und der Compiler erstellt auch eine Klasse namens "YourClassName", die von _YourClassName Accessor abgeleitet wird. In dieser Klassenansicht werden beide Klassen angezeigt.

Ein Beispiel für dieses Attribut, das in einer Anwendung verwendet wird, finden Sie unter MultiRead.

Beispiele

In diesem Beispiel wird eine Spalte in einer Tabelle an ein long Datenelement gebunden und Status- und Längenfelder angegeben.

// 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;
};

In diesem Beispiel werden vier Spalten an eine longZeichenfolge, einen Zeitstempel und eine DB_NUMERIC ganze Zahl in dieser Reihenfolge gebunden.

// 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;
};

Anforderungen

Attributkontext Wert
Gilt für class, structMember, Methode
Wiederholbar No
Erforderliche Attribute Keine
Ungültige Attribute Keine

Weitere Informationen zu den Attributkontexten finden Sie unter Attributkontexte.

Siehe auch

OLE DB-Consumerattribute
Klassenattribute