access数据库能进行事务 *** 作吗

access数据库能进行事务 *** 作吗,第1张

ACCESS数据库不支持事务 *** 作,但是我们可以通过ado类库实现对access数据库的事务 *** 作。

下面举例示范ADO类库实现对ACCESS数据库的事务 *** 作供参考。注意下列VBA代码需要先引用ADO类库

假设有一个团队表teams和团员表members,每个团队编号下面都有自己的团员名单,我们每向团员表添加一位团员时,团队表相应团号的人数就要增加一人,这样就需要进行两个 *** 作,一是团员表追加一条记录,二是团队表对应团队的人数更新为增加一人,这两个 *** 作必须要么全部成功,要不就全部失败,不得存在中间状态,否则记录就不正确了。如何实现?代码如下:

Private Sub Command0_Click()

On Error GoTo Err_Command0_Click

    

    Dim cn As ADODB.Connection

    Set cn = CurrentProject.Connection

    cn.BeginTrans  '开始执行事务

       '向团员表添加一位团员

        cn.Execute "insert into members(gid,m_name) values(" & 团队号码 & ",'" & 团员名称 & "')"

        '相应id团队的人数增加1人

        cn.Execute "update teams set pax=IIf(IsNull(pax),0,pax)+1 where gid=" & 团队号码

    cn.CommitTrans  '结束事务,确保上述两个 *** 作不会出现一个成功而另一个失败的状况

    MsgBox "团员添加成功"

    

Exit_Command0_Click:

    Exit Sub

Err_Command0_Click:

    MsgBox Err.Description

    Resume Exit_Command0_Click

       

End Sub

1、优化代码仔细检查一下数据库代码是否写的规范,把多余的打开和关闭都搞掉.。

2、修改服务器的注册表,把access的连接线程加大(可能是叫线程吧),如此一来速度会更块.对服务器影响很小.。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9902544.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存