LabVIEW数据库-数据库工具函数

数据库属性信息

使用DB Tools List Columns VI返回的字段类型并不是在DBMS中定义的类型,而是被映射为LabVIEW数据库连接工具包支持的六种数据类型中的一种。
在返回的数据表不止一个时,可以使用循环读取每个数据表中各字段的属性信息。

获取数据库及数据表的信息

建立连接,
使用DB Tools List Tables和DB Tools List Columns VI返回数据库中包含的表、数据表中所包含的所有数据字段的属性信息,包括字段名、字段使用数据类型、数据的范围等。
在这里插入图片描述

某个确切数据库的属性需要与数据库对象联系在一起。
LabVIEW中除了支持数据库连接对象、命令对象和记录集对象三种常用ADO之外,还支持命令-记录集,它用于将关系非常密切的ADO记录集和命令集捆绑在一起处理。
LabVIEW数据库连接工具支持的数据库对象及描述。

对象数据类型及创建方式描述
连接(connection)在这里插入图片描述通过对此对象的引用,设置或获取与数据库连接相关的参数信息
命令集(command set)在这里插入图片描述使用该对象执行SQL命令或存储过程返回的参数;通过该对象的引用,设置或获取命令相关的参数信息;数据库连接成功后,使用DB Tools Create Parameterized Query VI创建该对象;使用完该对象后,应使用DB Tools Free Object VI释放资源。
记录集在这里插入图片描述使用该对象操作数据;通过该对象的引用,设置或获取与记录集相关的参数信息;数据库连接成功后,使用DB Tools Execute query VI创建该对象;使用完该对象后,使用DB Tools Free Object VI释放资源
命令记录集(command - recordset )在这里插入图片描述当共同使用记录集和命令集时使用该对象;通过该对象引用,既可以设计记录集参数,也可以设置命令集参数;使用完该对象后,使用DB Tools Free Object VI释放资源

处理数据库事务

数据库事务是指一系列被当成一个逻辑单元执行的操作。这些操作要么就被执行,要么不被执行,是不可分割的整体。

LabVIEW中,DB Tools Database Transaction VI 用于控制数据库事务的执行。
包括开启、提交、撤销。
默认情况下,MySQL是自动提交事务,每次执行一个 SQL 语句时,如果执行成功,就会向数据库自动提交,而不能回滚。如果某一组操作需要在一个事务中,那么需要使用start transaction,一旦rollback或commit就结束当次事务,之后的操作又自动提交。
DDL语句是不能回滚的,并且部分的DDL语句会造成隐式的提交,因此最好事务中不要涉及DDL语句。

在这里插入图片描述

数据库事务常与这个锁机制结合使用,以防事务执行时其他用户也对数据库进行操作,破坏数据的完整性。
并发访问的问题

问题类型说明
脏读事务A往测试表新增了一条数据,而事务B查询测试表时,读到事务A新增了却还未提交的数据。如果事务A回滚,那么事务B读到的数据就是脏数据。
不可复读事务1读取了数据A,事务2更新(update)了数据A,并且事务2进行了提交(commit),接着事务1又读取了数据A,此时事务1两次读到的值不一致。两次读取,中间更新
虚读事务1读取了数据的几行内容,接着事务2插入或删除(insert/delete)了一些数据,并且事务2进行了提交(commit),最后事务1又进行了读取,发现多了(少了)一些内容两次读取,中间插入(或删除)
回滚丢失事务1和事务2同时访问一个数据,事务1先提交,事务2回滚操作,导致事务1的修改丢失
覆盖丢失事务1和事务2同时访问一个数据,事务1先提交,事务2后提交,导致事务1的修改被覆盖

常用数据隔离级别

级别隔离方式脏读不可复读虚读回滚丢失覆盖丢失说明
1混乱-----不启用,事务处理处于混乱状态
2读未提交TTTTF可以读取已经被其他事务修改但未提交的数据;只给数据修改启用锁,读取数据不用
3读已提交FTTTF只能读取已经由其他事务修改且提交的数据;读操作完成后,无须等待它所在的事务结束就解锁数据,写操作则需等它在的事务结束后才解锁数据
4可重复读FFTFF只能读取已由其他事务修改且提交的数据;其他事务不能在当前事务中的读取操作完成前修改数据;非修改数据的操作完成后,无须等待它所在的事务结束就立即解锁数据,而写操作要等它在的事务结束后才解锁数据
5序列化FFFFF只能读取已由其他事务修改且提交的数据;其他事务不能在当前事务中的读取操作完成前修改数据;其他事务不能在当前事务操作结束前在数据表中插入或删除数据记录;所有读写均需要等它所在事务结束后才解锁

T为允许,F为不允许,-为不适用
mysql的默认隔离级别:可重复读
在LabVIEW中,可以通过DB Tools Database Transaction VI指定事务所采用的隔离级别。
在这里插入图片描述

使用文件保存数据

DB Tools Save Recordset To File将数据库记录及数据记录的结构和属性保存至XML或ADTG格式文件中
ADTG是微软的一种二进制文件格式,文件相对较小,用ADTG保存数据的速度比用XML保存快。
保存
在这里插入图片描述
读取
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

斯金

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值