当前位置:编程学习 > VB >>

VB操作SQL2000数据库回滚问题

利用VB编写了几个窗体,每个窗体都有一个SQL插入语句,为了保证A、B、C过程数据的一致性,事务回滚代码如何写呢?要写在什么位置?一个函数中的事务回滚我会写,多个不同窗体下的SQL事务回滚如何写呢?
代码示例如下:
Function A()
{
......
    txtSQL = "insert into TableA"
    Set mrc = ExecuteSQL(txtSQL, MsgText)
......

    call B()
......

}
End A
......

......

Function B()
{
......

    txtSQL = "insert into TableB"
    Set mrc = ExecuteSQL(txtSQL, MsgText)
......

    call C()
......

}
End B
......

......

Function C()
{
......

    txtSQL = "insert into TableC"
    Set mrc = ExecuteSQL(txtSQL, MsgText)
......

 }
End C VB 是可以的,但是,各个操作的协调是比较麻烦的
定义全局的cnt对象,并启动事务
你必须为每个窗口的sql设置一个成功标志,每个窗口的执行结果记录到对应的标志
必须设置一个提交按键,检查各个窗口是否提交成功,如果是,则执行CommitTrans
如果有一个失败,执行RollBackTrans

我感觉一件事情放到几个地方去做不是一个聪明的做法!

你可以在不同窗口准备好数据,将数据汇总到一个中心点,在该处执行事务处理,或者搞一个提交函数,该函数从各个窗口提取数据,然后执行事务

事务处理写到数据库的存储过程中。
补充:VB ,  非技术类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,