VBA与数据库——写个类操作ADO_事物
2023-03-15 22:04:03 时间
事务是数据库非常重要的一个东西,像我这种非计算机专业的外行人,单从事务这个名字上看,可能根本不明白是什么意思,只有多次用过之后才能理解!
可以这样来理解:就像打开一个Excel文件,对这个文件的许多单元格都进行了输入操作、又增加了Sheet、又设置了各种格式等等。这个时候,稍微熟悉Excel的都应该知道,如果点击关闭文件,Excel会提示是否保存,点击不保存按钮,文件仍然是打开之前的;只有点击了保存按钮,做的那些操作才会真正的保存下来。
这里说到的对Excel进行的各种各样的操作,在数据库里就相当于是对数据库进行了很多步修改操作(像Update、Insert、Delete语句都是修改操作)。
事务就相当于是那个保存的按钮,这些对数据库的修改操作,可以使用事务这个东西来控制要么一次性全部执行操作,要么就回到操作之前的状态。
这么控制有什么用呢?直接百度一下数据库事务,看百度百科的解释就可以了,里面银行转账的例子还是非常好理解的。
具体在VBA里的使用就非常的简单了,直接调用ADO的方法就可以了:
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的数据才保存到数据库。
相关文章
- 基于Docker开发的PaaS平台 DINP
- LXD 2.0 系列(十):LXD 和 Juju
- 在Linux中使用matplotlib进行科学画图
- 《Spark大数据分析:核心概念、技术及实践》Scala编程
- 阿里聚安全企业沙龙全国行上海站报名啦!
- 《SLF4J官方文档》传统桥接API
- 《Spark大数据分析:核心概念、技术及实践》导读
- 《Spark 官方文档》Spark快速入门
- 阿里聚安全企业沙龙全国行广州站,期待你的报名!
- 《Spark 官方文档》监控和工具
- 一个使用 asyncio 协程的网络爬虫(三)
- 一个使用 asyncio 协程的网络爬虫(二)
- 如何使用linux程序mdadm创建软件RAID1软阵列
- 一个使用 asyncio 协程的网络爬虫(一)
- 试试只用U盘加载Linux系统
- LXD 2.0 系列(九):实时迁移
- RHEL/CentOS 7 中配置 PXE 网络启动服务器
- 在 Atomic 主机上远程使用 Docker
- 如何在 Linux 下大量屏蔽恶意 IP 地址
- LXD 2.0 系列(八):LXD 中的 LXD