ISSAbort::Abort (OLE DB)

取消当前行集以及与当前命令关联的任何批处理命令。

语法

HRESULT Abort(void);

注释

如果要中止的命令位于存储过程中,则将终止存储过程(以及已调用该过程的任何过程)以及包含此存储过程调用的命令批处理的执行。如果服务器正在将结果集传输到客户端,则将停止此过程。如果客户端不想使用结果集,则在释放行集之前调用 ISSAbort::Abort 将加快行集释放,但是,如果存在打开的事务且 XACT_ABORT 为 ON,则当调用 ISSAbort::Abort 时,将回滚此事务。

ISSAbort::Abort 返回 S_OK 后,关联的 IMultipleResults 接口将进入不可用状态并对于所有方法调用返回 DB_E_CANCELED(由 IUnknown 接口定义的方法除外),直到释放它为止。如果在调用 Abort 之前已从 IMultipleResults 获取了 IRowset,则它也会进入不可用状态,并对所有方法调用返回 DB_E_CANCELED(由 IUnknown 接口和 IRowset::ReleaseRows 定义的方法除外),直到在成功调用 ISSAbort::Abort 之后释放它为止。

注意注意

从 SQL Server 2005 开始,如果服务器 XACT_ABORT 状态为 ON,则当连接到 SQL Server 时,ISSAbort::Abort 的执行将终止并回滚当前所有的隐式或显式事务。SQL Server 的较早版本不中止当前事务。

参数

无。

返回代码值

  • S_OK
    如果取消批处理,则 ISSAbort::Abort 方法返回 S_OK,否则返回 DB_E_CANTCANCEL。如果已经取消了批处理,则返回 DB_E_CANCELED。

  • DB_E_CANCELED
    已经取消批处理。

  • DB_E_CANTCANCEL
    批处理未取消。

  • E_FAIL
    出现提供程序特定的错误;有关详细信息,请使用 ISQLServerErrorInfo 接口。

  • E_UNEXPECTED
    意外调用了该方法。例如,因为已调用 ISSAbort::Abort,所以对象处于僵停状态。

  • E_OUTOFMEMORY
    内存不足错误。

请参阅

其他资源