Share via


ICommandImpl 类

提供 ICommand 接口的实现。

语法

template <class T, class CommandBase = ICommand>
class ATL_NO_VTABLE ICommandImpl : public CommandBase

参数

T
你的类,派生自 ICommandImpl

CommandBase
命令接口。 默认值为 ICommand

要求

标头: atldb.h

成员

方法

名称 说明
取消 取消当前命令执行。
CancelExecution 取消当前命令执行。
CreateRowset 创建行集对象。
执行 执行命令。
GetDBSession 返回指向创建命令的会话的接口指针。
ICommandImpl 构造函数。

数据成员

名称 描述
m_bCancel 指示是否要取消命令。
m_bCancelWhenExecuting 指示是否在执行时取消命令。
m_bIsExecuting 指示命令当前是否正在运行。

注解

命令对象上的必需接口。

ICommandImpl::Cancel

取消当前命令执行。

语法

STDMETHOD(Cancel)();

备注

请参阅“OLE DB 程序员参考”中的 ICommand::Cancel

ICommandImpl::CancelExecution

取消当前命令执行。

语法

HRESULT CancelExecution();

ICommandImpl::CreateRowset

Execute 调用以创建单个行集。

语法

template template <class RowsetClass>
HRESULT CreateRowset(IUnknown* pUnkOuter,
   REFIID riid,
   DBPARAMS* pParams,
   DBROWCOUNT* pcRowsAffected,
   IUnknown** ppRowset,
   RowsetClass*& pRowsetObj);

参数

RowsetClass
表示用户的行集类的模板类成员。 通常由向导生成。

pUnkOuter
[in] 如果要将行集创建为聚合的一部分,则为指向控制 IUnknown 接口的指针;否则为 null。

riid
[in] 对应于 ICommand::Execute 中的 riid

pParams
[in/out] 对应于 ICommand::Execute 中的 pParams。

pcRowsAffected
对应于 ICommand::Execute 中的 pcRowsAffected

ppRowset
[in/out] 对应于 ICommand::Execute 中的 ppRowset

pRowsetObj
[out] 指向行集对象的指针。 通常不使用此参数,但如果在将行集传递给 COM 对象前必须在其上进行较多工作,则可使用此参数。 pRowsetObj 的生存期受到 ppRowset 约束

返回值

标准 HRESULT 值。 有关典型值的列表,请参阅 ICommand::Execute

备注

若要创建多个行集,或提供自己的条件来创建不同的行集,请在 Execute 中对 CreateRowset 进行不同的调用。

请参阅“OLE DB 程序员参考”中的 ICommand::Execute

ICommandImpl::Execute

执行命令。

语法

HRESULT Execute(IUnknown* pUnkOuter,
   REFIID riid,
   DBPARAMS* pParams,
   DBROWCOUNT* pcRowsAffected,
   IUnknown** ppRowset);

参数

请参阅“OLE DB 程序员参考”中的 ICommand::Execute

注解

请求的传出接口将是从此函数创建的行集对象获取的接口。

Execute 调用 CreateRowset。 重写默认实现,以创建多个行集或提供自己的条件来创建不同的行集。

ICommandImpl::GetDBSession

返回指向创建命令的会话的接口指针。

语法

STDMETHOD (GetDBSession) (REFIID riid,
   IUnknown** ppSession);

参数

请参阅“OLE DB 程序员参考”中的 ICommand::GetDBSession

注解

可用于从会话检索属性。

ICommandImpl::ICommandImpl

构造函数。

语法

ICommandImpl();

ICommandImpl::m_bCancel

指示是否取消命令。

语法

unsigned m_bCancel:1;

备注

可以在命令类的 Execute 方法中检索此变量,并根据需要取消。

ICommandImpl::m_bCancelWhenExecuting

指示是否可以在执行时取消命令。

语法

unsigned m_bCancelWhenExecuting:1;

备注

默认为 true(可以取消)。

ICommandImpl::m_bIsExecuting

指示命令当前是否正在运行。

语法

unsigned m_bIsExecuting:1;

备注

命令类的 Execute 方法可以将此变量设置为 true

另请参阅

OLE DB 提供程序模板
OLE DB 提供程序模板体系结构