事务处理的一大优点就是,当表1与表2在一个事务处理过程中(当然要把操作表1、表2的维护动作放进一个事务进程中才有效),只要任何一个表操作不成功,两个表的任何操作在SQL里都是无效的,两个表的操作要同事操作成功SQL才让操作生效,这就达到数据的一致性。如何实现,简单介绍一下:
1、VFP里如何通知SQL Server开始一个事务呢?
通过 SQLSETPROP()函数实现
IF SQLSETPROP(nConnectionHandle,"Transactions",2)<=0
=MESSAGEBOX("提交事务开始不成功",16,"提示")
ELSE
=MESSAGEBOX("提交事务开始成功",16,"提示")
ENDIF
2、VFP里如何通知SQL Server结束一个事务呢?
IF SQLSETPROP(nConnectionHandle,"Transactions",1)<=0
=MESSAGEBOX("事务结束不成功",16,"提示")
ELSE
=MESSAGEBOX("事务结束成功",16,"提示")
ENDIF
3、 数据处理代码的应该放在事务处理的哪个位置呢?
在VFP要提交给SQL Server处理的数据应该放在以上第1点后,事务成功开始后边,第2点应该放在数据处理完结的后边。
4、事务处理的开始后,VFP还要提醒SQL Server去执行处理:
SQLCOMMIT()函数实现:
SQLCOMMIT(nConnectionHandle):表示通知SQL Server提交一个事务处理
注意:当以上第3点的数据处理全部成功了,但没有在这之后没有执行事务提交的话,操作还是不成功的。
所以在一个事务结束前,必须提交这个事务让SOL Server进行处理。
5、如何取消一个事务的执行结果:
SQLROLLBACK(nConnectionHandle)函数能实现这个。
以上是实现SQL Server简单事务处理的方法,详细的还要靠大家去看看这些函数的一些用法与设置。