LabVIEW Access数据库操作实例:随机生成数字并实时读写操作
LabVIEW Access数据操作源码实例 LabVIEW 连接Access数据库,读写操作,随机产生1组4个数字,写入数据库实时读出并显示。 Access数据库,拿去直接运行。 注,虚拟商品售出不退 另外还有LabVIEW 连接SQL,oracle数据库实例,有需联系沟通;默认发如图LabVIEW Access数据
最近在搞LabVIEW和Access数据库的联动,发现有些小坑得注意。直接上实战代码,手把手教你怎么玩转这个数据读写闭环。先看最终效果:生成4个随机数存进数据库,再立即读出来显示在前面板,整个过程控制在1秒内完成。
先准备Access数据库,建个空表DataTable,字段分别是ID(自动编号)、Data1到Data4(双精度)、TimeStamp(日期/时间)。记得把文件后缀改成.accdb,别用老旧的.mdb格式,LabVIEW新版ODBC驱动可能不认。
连接数据库的关键代码长这样:
[ODBC连接字符串]
"DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=D:\test.accdb;"
注意路径别带中文,实测遇到过驱动报错就是因为这个。建议用绝对路径,相对路径有时候抽风。
数据生成部分用到了LabVIEW的随机数函数,这里有个骚操作:
[生成随机数代码]
随机数范围限制 → 乘以1000 → 取整 → 除以10
这招能把数据精度控制在0.1,比直接显示6位小数实用得多。比如生成的结果可能是532.4这样的格式,既满足一般测量需求,又节省存储空间。
写入数据库的SQL语句建议用参数化查询:
INSERT INTO DataTable (Data1, Data2, Data3, Data4, TimeStamp) VALUES (?,?,?,?,?)
比拼接字符串安全多了,防止SQL注入是其次,主要是避免数据类型转换出错。时间戳字段用LabVIEW的获取日期/时间函数,自动转成Access兼容的格式。

LabVIEW Access数据操作源码实例 LabVIEW 连接Access数据库,读写操作,随机产生1组4个数字,写入数据库实时读出并显示。 Access数据库,拿去直接运行。 注,虚拟商品售出不退 另外还有LabVIEW 连接SQL,oracle数据库实例,有需联系沟通;默认发如图LabVIEW Access数据
读取数据时有个细节,最新记录不一定是最大ID,得用时间戳排序:
SELECT TOP 1 * FROM DataTable ORDER BY TimeStamp DESC
这里用TOP 1比LIMIT兼容性好,毕竟Access的SQL语法比较奇葩。读取结果用DB工具包的Fetch Data方法,直接转成二维数组,比用记录集遍历快10倍不止。
遇到过最坑的问题:如果没装Microsoft Access Database Engine驱动,运行时直接崩溃。解决办法是去微软官网下AccessRuntime.exe,32位和64位版本要跟LabVIEW版本对应,这个坑我摔过三次才记住。
源码里还有个隐藏技巧:在While循环里加了个事件结构,同时响应停止按钮和前端面板关闭事件。这样强行关窗口时能自动断开数据库连接,避免出现数据库锁死的情况。
最后说下性能优化,实测连续写入1000条记录耗时8秒,平均每条8ms。如果发现速度变慢,检查这三个地方:1.是否启用事务 2.索引是否过多 3.防病毒软件是否在扫描数据库文件。
代码打包时记得把数据库文件设为始终包含,不然发给别人运行会报错。完整工程包含6个VI文件,主界面做得比较糙但功能完整,需要自定义的话改前面板控件属性就行。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)