rollback()

阅读(4080) 标签: 回滚, 数据库,

本章节介绍rollback()函数的用法。

db.rollback()

描述:

回滚数据库。

语法:

db.rollback(spn)

备注:

回滚数据库到指定回滚点,无参数时回滚全部更新点。

参数:

db

数据库连接。

spn

回滚点名字。

示例:

 

A

B

 

1

=create(ID,NAME,GENDER,AGE).record([3, "AAA","F",14])

 

 

2

=connect@e("demo")

 

建立连接,使用@e选项,自行管理提交和回滚。

3

=A2.savepoint("s1")

 

设置回滚点,名称为s1

4

>A2.execute@k(A1,"update STUDENTS2 set NAME=?,GENDER=?,AGE=? where ID=?",NAME,GENDER,AGE,ID)

 

执行sql语句,根据A1中的记录更新表STYDENTS2,使用@k选项,不提交事务。

5

=A2.error()

 

读取上一条sql执行的错误信息代码。

6

if A5==0

>A2.commit()

无错则提交。

7

else

>A2.rollback("s1")

有错则回滚到s1

8

>A2.close()

 

关闭连接。

相关概念:

db.close()

db.error()

db.commit()

connect()

f.rollback()

描述:

组表文件更新时出错可恢复。

语法:

f.rollback()

备注:

组表文件中的实表在增、删、改操作时,若出现错误,可以通过此函数恢复到执行错误操作之前的状态。

注意:组表文件更新操作出错后,使用f.open()打开文件时会有文件出错提示,需要rollback回滚。组表的回滚操作与常规数据库不同,无自动回滚机制,需要调用该f.rollback()函数手动回滚。

参数:

f

组表文件或文件组。

返回值:

Boolean

示例:

 

A

 

1

=file("D:/ckv.ctx")

文件ckv.ctx在执行T.update(P)出错,因此使用f.open()时报错"ckv.ctx:文件出错,需要调用 f.rollback()恢复。"

2

=A1.rollback()

ckv.ctx恢复到update之前的组表状态。