北京休恩博得科技发展有限公司社区管理事务处理 什么是事务处理?怎么进行事务处理?

1  /  1  页   1 跳转 查看:141

什么是事务处理?怎么进行事务处理?

什么是事务处理?怎么进行事务处理?

在Access中,用ADO或DAO打开记录集之后,就可以开始事务
beginTrans
SQL语句



commitTrans
在beginTrans与commitTrans之间的所有语句,只要有一句执行失败,所有已执行的语句都会不生效。这种常用在同时操作几个表的情况下使用,以免造成数据有关联的几个表的数据不相符。

事务用一句话来概括就是:全有或全无;要么全部生效,要么全部不生效。

Public Sub BeginTransX()

  Dim cnn1 As ADODB.Connection
  Dim rstTitles As ADODB.Recordset
  Dim strCnn As String
  Dim strTitle As String
  Dim strMessage As String

  打开连接。
  Set strcnn=currentproject.connection
  Set cnn1 = New ADODB.Connection
  cnn1.Open strCnn

  打开 Titles 表。
  Set rstTitles = New ADODB.Recordset
  rstTitles.CursorType = adOpenDynamic
  rstTitles.LockType = adLockPessimistic
  rstTitles.Open "titles", cnn1, , , adCmdTable
 
  rstTitles.MoveFirst
    开始事务
  cnn1.BeginTrans

  在记录集中循环并询问是否想要更改指定标题的类型。
  Do Until rstTitles.EOF
      If Trim(rstTitles!Type) = "psychology" Then
        strTitle = rstTitles!Title
        strMessage = "Title: " & strTitle & vbCr & _
        "Change type to self help?"

        更改指定雇员的标题。
        If MsgBox(strMessage, vbYesNo) = vbYes Then
            rstTitles!Type = "self_help"
            rstTitles.Update
        End If
      End If

        rstTitles.MoveNext
  Loop

  询问用户是否想提交以上所做的全部更改。
  If MsgBox("Save all changes?", vbYesNo) = vbYes Then
      如果回答是,就结束事务
      cnn1.CommitTrans
  Else
    如果回答否,就回滚事务,取消所有操作
      cnn1.RollbackTrans
  End If
  rstTitles.Close
  cnn1.Close

End Sub
 

回复 1F admin 的帖子

还是用C#编写吧,现在VB已经不那么的,使用和流行了. C# 操作数据库非常的方便,容易操作和管理.
 

回复:什么是事务处理?怎么进行事务处理?

什么年代了,还研究这个,现在的BS程序,全靠后台数据库的强大,你提交一半数据,后台存储过程自己应该能处理回滚的,程序的回滚只是用于规范业务操作流程的。别把前后台关系弄混淆了。

好的程序前台只是个外壳,后台才是真东西,sap、info(原exe)、oracle、MA、Fromworx(亚洲第一WMS)的系统莫不如此设计,好的东西在后台数据库里面呢。

Oralce也在被开放源代码的PostgreSQL蚕食市场,经济不景气啊,光懂微软的有屁用啊,哪天微软倒闭了,大家都用linux,要死大批只会微软平台开发的程序员的。
 
1  /  1  页   1 跳转

版权所有 北京休恩博得科技发展有限公司  北京休恩博得科技发展有限公司  Sitemap

Powered by Discuz!NT 2.1.202    Copyright © 2001-2009 Comsenz Inc.
Processed in 0.203125 second(s) , 7 queries.
返顶部