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 决定所有的句柄都回滚了。。 
 
posted @ 2013-09-21 17:48  加菲猫的VFP  阅读(617)  评论(0编辑  收藏  举报