Share via


db_column

将指定列绑定到行集中的变量。

语法

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

参数

序号
列序号(DBCOLUMNINFO 序号)或列名(ANSI 或 Unicode 字符串)对应于要将数据绑定到的行集中的字段。 如果使用数字,则可以跳过连续序号(例如:1、2、3、5)。 如果使用的 OLE DB 提供程序支持该名称,则该名称可能包含空格。 例如,可以使用以下任一格式:

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

dbtype
(可选)列条目的 OLE DB 类型指示器

精度
(可选)用于列条目的精度。 有关详细信息,请参阅 DBBINDING 结构bPrecision 元素的说明

scale
(可选)用于列条目的比例。 有关详细信息,请参阅 DBBINDING 结构bScale 元素的说明

status
(可选)用于保存此列状态的成员变量。 状态指示列值是数据值还是某些其他值,例如 NULL。 有关可能的值,请参阅 OLE DB 程序员参考中的状态

length
(可选)用于保存列大小(以字节为单位)的成员变量。

备注

db_column 将指定的表列绑定到行集中的变量。 它分隔可参与 OLE DB 基于 IAccessor 的绑定的成员数据。 此特性设置通常使用 OLE DB 使用者宏 BEGIN_COLUMN_MAPEND_COLUMN_MAPCOLUMN_ENTRY 定义的列映射。 这些对象操作 OLE DB DBBINDING 结构以绑定指定列。 使用 db_column 特性标记的每个成员都将以列条目的形式占据列映射中的一个条目。 因此,可以在放置列映射的位置调用此特性,即在命令或表类中。

将 db_columndb_tabledb_command 特性结合使用。

使用者特性提供程序将此特性应用到某个类时,编译器会将该类重命名为 _YourClassNameAccessor,其中 YourClassName 是为类命名的名称,且编译器还将创建一个派生自 _YourClassNameAccessor、名为 YourClassName 的类。 将在类视图中看到这两个类。

有关应用程序中使用此特性的示例,请参阅 MultiRead

示例

此示例将表中的列绑定到 long 数据成员,并指定状态和长度字段。

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

此示例按该顺序将四列绑定到一个 long、一个字符串、一个时间戳和一个 DB_NUMERIC 整数。

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

要求

特性上下文
适用于 classstruct、member、method
可重复
必需的特性
无效的特性

有关特性上下文的详细信息,请参见 特性上下文

另请参阅

OLE DB 使用者特性
类特性