确定要使用的访问器类型

可以在编译时或运行时确定行集合上的数据类型。

如果需要在编译时确定数据类型,则应使用静态访问器(如 CAccessor)。 可以手动确定数据类型,也可以通过使用“ATL OLE DB 使用者向导”来确定。

如果需要在运行时确定数据类型,则应使用动态访问器(CDynamicAccessor 或其子级)或手动访问器 (CManualAccessor)。 在这些情况下,可以在行集合上调用 GetColumnInfo 以返回列绑定信息,从此信息中即可确定类型。

下表列出了使用者模板中所提供的访问器类型。 每种访问器都各有利弊。 根据不同的情况,其中一种访问器类型将适合您的需要。

访问器类

绑定

Parameter

Comment

CAccessor

COLUMN_ENTRY 宏创建用户记录。 这些宏将该记录中的数据成员绑定到此访问器。 创建行集合后,列将无法取消绑定。

是,通过使用 PARAM_MAP 宏项。 绑定后,参数将无法取消绑定。

速度最快的访问器,因为代码数量较少。

CDynamicAccessor

自动。

不能。

当不知道行集合中的数据类型时很有用。

CDynamicParameterAccessor

自动,但可以重写

是,但条件是提供程序支持 ICommandWithParameters。 自动绑定参数。

速度比 CDynamicAccessor 慢,但对于调用一般存储过程很有用。

CDynamicStringAccessor[A,W]

自动。

不能。

将在数据存储区中存取的数据作为字符串数据检索。

CManualAccessor

手动使用 AddBindEntry

手动使用 AddParameterEntry

非常快;参数和列只绑定一次。 您自己确定要使用的数据类型。 (有关示例,请参见 DBVIEWER 示例)。比 CDynamicAccessorCAccessor 需要更多的代码。 更类似于直接调用 OLE DB。

CXMLAccessor

自动。

不能。

将在数据存储区中存取的数据作为字符串数据检索,并将其格式化为带有 XML 标记的数据。

请参见

概念

使用访问器