本章节介绍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() |
|
相关概念:
组表文件更新时出错可恢复。
语法:
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之前的组表状态。 |