LabVIEW使用LabSQL在Access数据库mdb中显示表名称及创建新表
在以往的编程生涯中,本人一直用access做数据记录的数据库,如用户信息、数据记录信息等等。不过以前,都是直接在Access中对mdb数据库进行操作,如创建新表、创建字段等。以前也曾研究了一下,如何在LabVIEW中直接创建新表与字段,但是没有认真研究,没成功,所以,就一直使用手动Access创建的方法来实现。今天终于研究通了如何在LabVIEW中直接创建数据库与字段。首先,我们要先在Access中创建一个空白的数据库。这个过程,仍然还是需要手动创建的。如果用LabVIEW文件选项板中的打开/创建/替换文件函数,倒是可以创建指定的名称与后缀的文件,但是在Access中无法打开,也就不能正常工作,不被识别。即使如NI的DCB工具包中,也没有创建数据库的功能,只有创建表的功能。
要创建表,当然首先要判断是不是已经有该表,如果没有该表,则创建,如果已经有需要创建的表了,则不创建,直接打开就可以了。要想查询是不是有表,access中不能直接使用show tables指令,但是可以查询mdb数据库中的系统表MsysObjects中的Name字段来获取创建的表名。
当然,首先要对创建的数据库进行两步设置,才可以查询该系统表,上图中,已经显示了Access隐藏的系统表并授权:
第一步显示:文件》选项》当前数据库》导航》导航选项》显示选项》显示隐藏对象,显示系统对象,全勾选。
这样就可以像第一图那样,在表的导航栏中看到灰色的隐藏的系统对象。其中就有MsysObjects表。
第二步授权:文件》信息》用户和权限》用户与组权限》用户名/组名(选择管理员)》对象名称(选择MsysObjects表)》权限》选择读取设计、读取数据勾选。如下图所示:
授权MsysObjects表
这样就授权管理员可以查询系统表MsysObjects了。具体的,可以参考以下文章:
Access2010打开系统表MSysObjects的控制权限 - phoenixcll - 博客园
https://www.cnblogs.com/ripplescll/p/5612235.html
这样只需要在LabSQL中执行select Name from MsysObjects where type=1 and Flags=0;查询语句,即可查询mdb中我们创建的表名。
而创建表,则使用CREATE TABLE 表名 (字段名1 类型1,字段名2 类型2,字段n 类型n));语句来创建表并初始化字段。这里的类型,可百度相关资源,如varchar(10),int之类的。另外本示例中打开数据库没有使用ODBC,而是直接使用数据库驱动打开数据库,免除在ODBC中创建数据源的过程。只要电脑系统中有Access数据库的驱动即可操作,一般安装了专业版office的,都会有该驱动。如果是安装了家庭版、学生版、365订阅版office的,因为没有access组件,则没有相关的驱动,需要重新安装access驱动或组件。
查询表、创建表、查询表效果1
查询表、创建表、查询表效果2
mbd数据库中创建好的数据表
示例下载:LabVIEW2019SP1f1版,LabSQL,已经授权mdb文件:
LabVIEW2019SP1F1中文版下载:
NI LabVIEW 2019SP1F1 X86 WinCHN LabVIEW2019SP1F1 32位中文版完整离线安装包下载http://visionbbs.com/thread-22833-1-1.html
LabSQL请到以下帖子下载 :
LabVIEW可用的LabSQL免费数据库工具包(2013版)
http://visionbbs.com/thread-2078-1-1.html
页:
[1]