VFP不同句柄 同一事务处理 统一提交或回滚

SQLSetprop(m.lnAccHandle,[Transactions],2)
SQLSetprop(m.lnSetHandle,[Transactions],2)

SQLSetprop(m.lnAccHandle,[DisconnectRollback],.T.)
SQLSetprop(m.lnSetHandle,[DisconnectRollback],.T.)

m.lcToken = []
SQLExec(m.lnAccHandle,"begin tran")
SQLExec(m.lnAccHandle,"{call sp_getbindtoken(?@lcToken)}")
SQLExec(m.lnSetHandle,"{call sp_bindsession(?lcToken)}")

SQLExec(m.lnSetHandle,"...")
SQLExec(m.lnAccHandle,"...")

SQLExec(m.lnAccHandle,"commit tran")
Sqlcommit(m.lnAccHandle)
Sqlcommit(m.lnSetHandle)

* Sqlrollback(m.lnAccHandle)
* Sqlrollback(m.lnSetHandle)
 
 
SQLExec(m.lnAccHandle,"begin tran")
这是SQLServer内部事务
SQLSetprop() 是VFP,外部事务
外部事务在外面, 内部事务在里面。。  SQLEXEC如果出错了,就调用 rollback tran  。。。 然后DisconnectRollback 决定所有的句柄都回滚了。。 
 
VFP祺佑三层开发框架,是VFP界第一款可以应用于开发CS、BS、APP、小程序、公众号的全功能开发框架。了解更多,请访问http://www.sn58.cn
原文地址:https://www.cnblogs.com/fitche/p/3331718.html