LabVIEWwilliam hill官网
直播中

cz

7年用户 23经验值
擅长:测量仪表
私信 关注
[问答]

【高分悬赏】关于LabVIEW读取Access数据库报错的问题

先说一下背景,
创建了一个数据库,用于数据流转及汇总,用labview对数据库进行操作。因为这个案子包含6个过程,于是数据从过程1输入到过程6结束,数据从1流到6,并实时汇总在一个Summary的表格中。应Boss要求,又开发了一个实时显示数据的看板,看板每隔1分钟读取一次数据库的数据,并将今日的目标和完成数量写入数据库中,以备查询。所以一共是6+1个程序在共同对数据库进行读写。然后问题就出现了,有时候其他6个职能的人在操作数据库时,会导致看板读取报错,见附件图。
问,如何才能解决这种冲突? 微信图片_20200317141547.png 图像 3.png
已退回20积分

回帖(2)

微光123

2020-3-17 16:07:50
要不你换个mysql数据库看一下?
10 举报
  • cz: 嗯,使用Access是因为直观,方便查看。
  • 微光123 回复 cz: 数据库通常都是有锁机制的,有分行锁或者表锁之类的。也就是说有人在操作的时候是禁止同时操作的。所以要等待,等待别人操作完了,你才可以操作。
  • cz 回复 微光123: 实际上是在有程序对数据库进行操作时,其他程序是无法打开这个数据库的,我在考虑是否可以用标量解决,但标量貌似不可以用在不同程序之间,仅在并行程序中使用。
  • 微光123 回复 cz: 你可能没理解我说的。。。。。。。。。。。。。。不同程序或者不同电脑之间你可以通过很多方法进行数据交换,例如通过tcp之类的
  • cz 回复 微光123: 你说的我知道,但是用什么方法实现呢,能不能帮忙给一个思路,我打算每个程序配备一个数据库,这样会减少不同线程对数据库的操作。实际情况是我写的同一个程序,封装后安装到数十人的电脑上,仅仅是操作人员不同。
  • 微光123 回复 cz: 数十个人的电脑的话我估计你要做个web service 做个服务器程序,客户端程序通过web service 进行数据交换。这样也不需要说加多个数据库,你只需要安装一个大型的数据库,用labview做一个轻量级的web service程序。可能这样比较麻烦,但是后续会方便很多
  • cz 回复 微光123: 我没有使用过Web service,现在数据库放在了公司云盘上,所有电脑通过ODBC连接。即一个数据库供所有外部程序使用。
  • 微光123 回复 cz: 已经连好ODBC的就可以直接使用大型的数据库支持行锁的数据库,你这个问题应该就没事了。
  • 微光123 回复 cz: Web service 也很简单,labview就有案例,看一下就懂了。labview上做的是轻量级的
  • cz 回复 微光123: 感谢,我看一下范例。

汪刚刚

2020-3-18 09:13:40
程序要加线程限制,同时读写会造成数据竞争,本身会被锁定,连excel都会这样
1 举报
  • cz: 嗯,明白。但是现在是不同程序对数据库进行操作,看起来无法限制其他线程的人对数据库进行操作,我在考虑每个程序配备数据库,这样会减少不同线程对数据库的操作。

更多回帖

发帖
×
20
完善资料,
赚取积分