提供标准 OLE DB 行集合实现,而无需许多实现接口多重继承。
template <
class T,
class Storage,
class CreatorClass,
class ArrayType = CAtlArray<Storage>,
class RowClass = CSimpleRow,
class RowsetInterface = IRowsetImpl < T, IRowset >
>
class CRowsetImpl :
public CComObjectRootEx<CreatorClass::_ThreadModel>,
public CRowsetBaseImpl<T, Storage, ArrayType, RowsetInterface>,
public IRowsetInfoImpl<T, CreatorClass::_PropClass>
参数
T
从 CRowsetImpl派生的用户的类。Storage
用户记录类。CreatorClass
包含行集合属性的类;典型命令。ArrayType
为行集合的数据存储的类。此参数默认为 CAtlArray,但是,它可以是支持所需功能的任何类。
成员
方法
从 DBID 和复制提取字符串将的 bstr 。 |
|
对两个字符串验证和存储 DBID时 (m_strCommandText 和 m_strIndexText)。 |
可重写的方法
检索特定的客户端请求的列信息。 |
|
检查或两个参数是否包含字符串值; 如果是这样,复制字符串值写到数据成员 m_strCommandText 和 m_strIndexText。 |
|
检查或两 DBID的是否包含字符串值; 如果是这样,将它们复制到其数据成员 m_strCommandText 和 m_strIndexText。 |
数据成员
默认情况下,在用户记录模板参数 templatizes 到 CRowsetImpl的 CAtlArray 。另一种数组类型类可以通过更改 ArrayType 模板参数使用。 CRowsetImpl。 |
|
包含行集合的初始命令。 |
|
包含行集合的初始索引。 |
备注
以静态向上转换的形式,CRowsetImpl 的重写。方法控件特定行集合将验证命令文本。可以通过对多个继承的实现接口来创建自己的 CRowsetImpl样式类。必须提供实现的唯一方法是 执行。根据类型的行集合,可以创建 creator 方法将需要 执行的不同签名。例如,如果您使用的是, CRowsetImpl- 实现的派生类架构行集合, 执行 方法将具有以下签名:
HRESULT Execute(LONG* pcRows, ULONG cRestrictions, const VARIANT* rgRestrictions)
如果创建 CRowsetImpl- 实现的派生类命令或会话的行集合, 执行 方法将具有以下签名:
HRESULT Execute(LONG* pcRows, DBPARAMS* pParams)
实现任何 CRowsetImpl派生的 执行 方法,您必须填写您的内部数据缓冲区 (m_rgRowData)。
要求
Header: atldb.h