SQLROLLBACK() 函 数

SQLROLLBACK() 函 数 - 图1取消当前事务处理期间所做的任何更改

语 法

SQLROLLBACK (nConnectionHandle )

返 值 类 型

数值型

参 数 描 述

nConnectionHandle

SQLROLLBACK() 函 数 - 图2SQLROLLBACK() 函 数 - 图3由 SQLCONNECT ( ) 返 回 的 指 向 数 据 源 的 连 接 句 柄

说 明

SQLROLLBACK() 函 数 - 图4SQLROLLBACK() 函 数 - 图5SQLROLLBACK() 函 数 - 图6SQLROLLBACK() 函 数 - 图7如果事务回滚成功 SQLROLLBACK ( ) 返回 1 否则 返回 -1 如果

SQLROLLBACK() 函 数 - 图8SQLROLLBACK() 函 数 - 图9SQLROLLBACK( ) 返回 -1 可以使用 AERROR( ) 确定该事务不能回滚的原因

SQLROLLBACK() 函 数 - 图10SQLROLLBACK() 函 数 - 图11SQLROLLBACK() 函 数 - 图12SQLROLLBACK() 函 数 - 图13SQLROLLBACK() 函 数 - 图14SQLROLLBACK() 函 数 - 图15SQLROLLBACK() 函 数 - 图16如果人工事务处理有效 SQLSETPRO P( ) 的 Transaction 属性设置为 人工 就可以将多个更新发送到远程表中 这些更新可以用 SQLROLLBACK( ) 全部回滚

SQLROLLBACK() 函 数 - 图17可以用 SQLCOMMIT ( ) 提交更新

示 例

SQLROLLBACK() 函 数 - 图18SQLROLLBACK() 函 数 - 图19SQLROLLBACK() 函 数 - 图20SQLROLLBACK() 函 数 - 图21下面的示例假定已经成功发出 SQLCONNEC T( ) 并且其返回值存入一个名为gnConnHandle 的变量 SQLSETPROP( ) 将 Transaction 属性设置成 2 ( 人工 ) 以允许使 用 SQLCOMMIT( ) 和 SQLROLLBACK( )

SQLROLLBACK() 函 数 - 图22SQLROLLBACK() 函 数 - 图23示例中用 SQLEXEC ( ) 修改了表 authors 并用 SQLROLLBACK( ) 取消对该表的更改

= SQLSETPROP(gnConnHandle, 'Transactions', 2) && 人工

= SQLEXEC(gnConnHandle, "INSERT INTO authors (au_id, au_lname); VALUES ('aupoe', 'Poe')")

= SQLROLLBACK(gnConnHandle)

请 参 阅

AERROR ( ), SQLCOMMIT( ), SQLCONNECT( ), SQLSETPROP( )