事务问题

lj=cursorgetprop("ConnectHandle","bm")
sqlexec(lj,"set lock_timeout 10000")
allok=.f.
DO while allok=.f. &&当没成功时做
Requery("bm")
BEGIN TRANSACTION
SQLSetProp( lj, 'Transactions', 2 ) &&人工事务
replace 标记 with 101

IF tableupdate(.t.,.f.,"bm")

&&问题在这,我不执行下面的话,sql server照样成功,为什么?

SQLCOMMIT(lj) &&提交sql 后台
END TRANSACTION &&提交本地视图
allok=.t.

ELSE
SQLROLLBACK(lj) &&回滚远程
ROLLBACK &&回滚本地
WAIT "放弃锁,事务回滚..." wind timeout 2
ENDIF
ENDDO &&完成所有事务

****事务结束(长期医嘱与临时医嘱成为一个事务)
SQLSetProp( lj, 'Transactions', 1 )
****事务结束(长期医嘱与临时医嘱成为一个事务)

&&问题在这,我不执行下面的话,sql server照样成功,为什么?
SQLCOMMIT(lj) &&提交sql 后台
END TRANSACTION &&提交本地视图

---------------------------------------------------------------

****事务结束(长期医嘱与临时医嘱成为一个事务)
SQLSetProp( lj, 'Transactions', 1 )
****事务结束(长期医嘱与临时医嘱成为一个事务)
表示自动提交,就算不用sqlcommit

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus