vfp事务处理的控制命令及其应用
2.1 控制事务处理的命令
vfp提供了以下处理事务的命令和函数:
. begin transaction
初始化一个事务,表示一个事务的开始。
. rollback
取消最近begin transaction语句以来对表的全部修改。
. end transaction
锁定记录,确认最近begin transaction语句以来对表的全部修改。
. txtlevel()
确定当前事务处理的等级,最大值为5,表示事务最多嵌套五层,txtlevel()为0表示当前无事务处理。
2.2 更新远程表时控制事务处理的命令
a) sqlsetprop() 格式如下:
sqlsetprop(连接句柄,设置类型[, 设置值])
设置类型为transactions且设置值db—transmanul(在 foxpro.h中定义)表示可以通过sqlcommit()和sqlrollback()人工处理事务。如果调用成功,sqlsetprop() 返回1;否则,如果发生连接级错误则返回-1,发生环境级错误则返回-2。
b) sqlrollback()
取消当前事务处理期间所做的任何更改。如果事务取消成功,sqlrollback()返回1;否则,返回-1。如果 sqlrollback() 返回-1,可以使用aerror()确定该事务不能取消的原因。如果设置成人工处理方式,用 sqlrollback()可以事务处理期间将对远程表的所有更新全部取消。
c) sqlcommit()提交一个事务
如果成功提交了事务,sqlcommit()返回1;否则,返回-1。如果sqlcommit()返回-1,可使用aerror()函数确定该事务不能取消的原因。
2.3 vfp使用事务处理的原则
事务以begin transactio