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_MAP、END_COLUMN_MAP 和 COLUMN_ENTRY 定义的列映射。 这些对象操作 OLE DB DBBINDING 结构以绑定指定列。 使用 db_column 特性标记的每个成员都将以列条目的形式占据列映射中的一个条目。 因此,可以在放置列映射的位置调用此特性,即在命令或表类中。
将 db_column 与 db_table 或 db_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;
};
要求
特性上下文 | 值 |
---|---|
适用于 | class 、struct 、member、method |
可重复 | 否 |
必需的特性 | 无 |
无效的特性 | 无 |
有关特性上下文的详细信息,请参见 特性上下文。