首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >VBA与数据库——写个类操作ADO_事物

VBA与数据库——写个类操作ADO_事物

作者头像
xyj
发布2021-11-19 14:37:30
发布2021-11-19 14:37:30
1.2K0
举报
文章被收录于专栏:VBA 学习VBA 学习

事务是数据库非常重要的一个东西,像我这种非计算机专业的外行人,单从事务这个名字上看,可能根本不明白是什么意思,只有多次用过之后才能理解!

可以这样来理解:就像打开一个Excel文件,对这个文件的许多单元格都进行了输入操作、又增加了Sheet、又设置了各种格式等等。这个时候,稍微熟悉Excel的都应该知道,如果点击关闭文件,Excel会提示是否保存,点击不保存按钮,文件仍然是打开之前的;只有点击了保存按钮,做的那些操作才会真正的保存下来。

这里说到的对Excel进行的各种各样的操作,在数据库里就相当于是对数据库进行了很多步修改操作(像Update、Insert、Delete语句都是修改操作)。

事务就相当于是那个保存的按钮,这些对数据库的修改操作,可以使用事务这个东西来控制要么一次性全部执行操作,要么就回到操作之前的状态。

这么控制有什么用呢?直接百度一下数据库事务,看百度百科的解释就可以了,里面银行转账的例子还是非常好理解的。

具体在VBA里的使用就非常的简单了,直接调用ADO的方法就可以了:

代码语言:javascript
复制
Function Begin() As Long
    AdoConn.BeginTrans
End Function
Function Commit() As Long
    AdoConn.CommitTrans
End Function
Function Rollback() As Long
    AdoConn.RollbackTrans
End Function

测试:

前面很多是用Excel作为数据库来处理的例子,但是前面也说到过,仅仅是把Excel当作数据库来处理,Excel不是真正的数据库,很多数据库的特性是不支持的,其中事务就不能支持:

虽然执行了Rollback,但是insert的数据还是被保存了。

下面看下sqlite数据库:

可以看到,执行了Rollback,insert的数据没有保存到数据库。

执行了Commit,insert的数据才保存到数据库。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 VBA 学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档