求助各位大佬,用labview向access写入数据,四个工位同时写入的时候,只有一个工位能写入,其他写不进去,怎么回事?

2019-07-17 12:27发布

具体情况是这样的,有四个工位,测试的时候,只有四个工位中的任意一个工位能存进去,两个或三个或四个同时写入也是只能写入一个,但是有时候也会出现偶尔两个工位能写入的情况,程序可以运行没有报错,卡在这个问题很久,实在不知道该怎么解决
用database或labsql都试过,但是不管用什么方式,总会出现这个问题,实在不知道该怎么办了,求助各位,麻烦大家帮帮忙~
谢谢大家~

PS 这里四个工位的所有写入程序都在一个vi里面,每个工位后面都是按照打开、存入关闭这几个顺序来,不知道是不是存入速度太慢还是哪里有冲突...
用database.png
用labsql写入.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
480784745
1楼-- · 2019-07-17 13:09
1.这个VI有没有设置成非共享副本运行方式,如果设置成共享副本运行,则多个线程会同时去获取DATABASE的引用,可能会出错;
2.可以换个思路编程,将database创建、写入和关闭封装成一个功能全局函数(可参见LABVIEW教程),保存数据时只调用写入函数即可,若频繁的创建和关闭引用可能会出现错误。 最佳答案
Cgoodluck
2楼-- · 2019-07-17 18:44
480784745 发表于 2017-12-6 22:08
1.这个VI有没有设置成非共享副本运行方式,如果设置成共享副本运行,则多个线程会同时去获取DATABASE的引用,可能会出错;
2.可以换个思路编程,将database创建、写入和关闭封装成一个功能全局函数(可参见LABVIEW教程),保存数据时只调用写入函数即可,若频繁的创建和关闭引用可能会出现错误。 ...

大神 你好 感谢回复~
         方法1中我并没有设置共享副本运行方式,我选择了预先分副本重入执行,可是还是不行,两外重入的时候需要怎么设置呢?只需要在vi属性里面设置一下就可以了么
        方法2怎么样封装呢?是不是需要把枚举类型设置成为创建、写入、关闭呢?还有怎么样只调用创建呢?
本人小白,有很多不懂的地方,希望多多包涵,感谢大神~~
        
480784745
3楼-- · 2019-07-18 00:22
类似这种风格,你看看
无标题.png
Cgoodluck
4楼-- · 2019-07-18 03:52
480784745 发表于 2017-12-7 21:58
类似这种风格,你看看

这种在教材上也看见了 大神谢谢啦~
phoenix-zheng
5楼-- · 2019-07-18 07:21
 精彩回答 2  元偷偷看……
像风一样飞翔!
6楼-- · 2019-07-18 10:10
Cgoodluck 发表于 2017-12-8 14:59
这种在教材上也看见了 大神谢谢啦~

请问这是哪本教程

一周热门 更多>