| 网站首页 | 新闻 | 新书 | 专家 | 技巧 | 源码作品 | 工具/资源 | 商城 | 风采 | 留言 | 论坛 | 网址 | 承接 | 
您现在的位置: Access/Office中国 >> 技巧 >> Access >> DAOADOADP链接表DBMS >> 文章正文 用户登录 新用户注册
使用ADO或DAO如何进行事务处理?         ★★★
使用ADO或DAO如何进行事务处理?
作者:ec 文章来源:ACCESS911 点击数: 本日:{$DayHits} 更新时间:2003-12-6 20:25:16

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

文章录入:tmtony    责任编辑:tmtony 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    专 题 栏 目
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    Sql Server 和 Access 操
    实现查询功能(DAO)
    SQL在存储过程中使用递归
    SQL Server 7.0数据库的
    精妙SQL语句 值得推敲
    SQL Delete
    SQL Update
    SQL Insert Into
    SQL Truncate Table
    SQL Drop Table
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)