
工具包介绍
NI为LabVIEW用户提供了一个专门和数据库链接的工具包:Database Connectivity。安装好工具包后,Database Connectivity工具包的VI将会在函数选板的附加工具包列中出现。Database子选板如图17-1所示。
DB Tools Open Connection:打开数据库连接,如图17-2(a)所示。
DB Tools Close Connection:关闭数据库连接,如图17-2(b)所示
LabVIEW与数据库的链接 - leo - Leo LabVIEW与数据库的链接 - leo - Leo
图17-2(a) DB Tools Open Connection 图17-2(b) DB Tools Close Connection
DB Tools Insert Data:根据数据库连接插入一列新的数据,如图17-3(a)所示。
DB Tools Select Data:根据数据库连接从数据库中提取一列数据,如图17-3(b)所示。
LabVIEW与数据库的链接 - leo - LeoLabVIEW与数据库的链接 - leo - Leo
图17-3(a) DB Tools Insert Data 图17-3(b) DB Tools Select Data
DB Tools Create Table:根据数据库连接创建一个新的表格。输入参数表格和行信息分别表示表格的名称和表格中每行的属性,如图17-4(a)所示。
DB Tools Drop Table:根据数据库连接删除一个由输入参数表格指定名称的表格,如图17-4(b)所示。
LabVIEW与数据库的链接 - leo - Leo LabVIEW与数据库的链接 - leo - Leo
图17-4(a) DB Tools Create Table 图17-4(b) DB Tools Drop Table
Database Variant To Data:将数据库变量转换为由输入参数类型指定的LabVIEW数据类型,如图17-5所示。
Utility子选板比较常用的函数有DB Tools List Tablesvi与DB Tools List Columnsvi。在这里只介绍这两个VI,其他的VI查看该工具包的帮助文件,很容易就可以理解函数的用法,如图17-6所示。
LabVIEW与数据库的链接 - leo - Leo LabVIEW与数据库的链接 - leo - Leo
图17-5 Database Variant To Data 图17-6 Utility子选板
DB Tools List Tables:根据数据连接返回数据库中的所有表格,如图17-7(a)所示。
DB Tools List Columns:根据数据库连接返回输入参数表格的所有列,如图17-7(b)所示。
LabVIEW与数据库的链接 - leo - Leo
图17-7(a) DB Tools List Tables
LabVIEW与数据库的链接 - leo - Leo
图17-7(b) DB Tools List Columns
对Advanced子选板也只介绍比较常用的VI,其他的VI在应用中不会经常涉及到,这里不再赘述,如图17-8所示。
LabVIEW与数据库的链接 - leo - Leo
图17-8 Advanced子选板
DB Tools Execute Query:执行输入的SQL语句,并返回一个数据库引用,如图17-9(a)所示。
DB Tools Fetch Recordset Data:根据记录引用从文件中获取数据,如图17-9(b)所示。
LabVIEW与数据库的链接 - leo - Leo
图17-9(a) DB Tools Execute Query
LabVIEW与数据库的链接 - leo - Leo
图17-9(b) DB Tools Fetch Recordset Data
DB Tools Free Object:通过释放引用来关闭目标,如图17-10所示。
LabVIEW与数据库的链接 - leo - Leo
图17-10 DB Tools Free Object
172 Database Connectivity应用典型实例
1721 在Access中建立一个数据库
使用NI所提供的数据库工具包Database Connectivity只能 *** 作数据库,但是无法创建数据库,因此需要借助第三方数据库管理系统,如Access等来创建数据库。首先我们建立一个Datamdb的数据库文件。
打开Microsoft Access软件,单击文件>>新建…,选择空数据库,保存到文件夹下。创建方法如图17-11所示。
LabVIEW与数据库的链接 - leo - Leo
图17-11 在Access中创建数据库表格
在利用Database Connectivity工具包 *** 作数据库之前,需要先连接数据库,连接数据库的方法有以下两种。
1.利用DSN连接数据库
LabVIEW数据库工具包基于ODBC(Open Database Connectivity)技术,在使用ODBC API函数之前,需要提供数据源名DSN(Data Source Names)才能连接到实际数据库,所以需要首先创建DSN。Database Connectivity工具包与ODBC的关系如图17-12所示。
打开Windows控制面板>>管理工具,选择数据源,进入“ODBC数据源管理器”对话框,如图17-13所示。
LabVIEW与数据库的链接 - leo - Leo LabVIEW与数据库的链接 - leo - Leo
图17-12 DB Tools与ODBC的关系 图17-13 “ODBC数据源管理器”对话框
在“用户DSN”页面下创建的数据源只有本用户才能访问,在“系统DSN”页面下创建的数据源,该系统下的所有用户都可以访问。在此选择“用户DSN”,单击“添加”按钮,在d出的“创建新数据源”对话框中选择“Driver do Microsoft Access(mdb)”,然后单击“完成”按钮,如图17-14所示。
随后d出“ODBC Microsoft Access安装”对话框,输入“数据源名”,如“LSData”,然后单击“选择”按钮,选择建立好的Datamdb数据库文件,单击“确定”按钮,如图17-15所示。
LabVIEW与数据库的链接 - leo - Leo
图17-14 “创建新数据源”对话框
LabVIEW与数据库的链接 - leo - Leo
图17-15 “ODBC Microsoft Access安装”对话框
LabVIEW与数据库的链接 - leo - Leo
完成以上配置后,就可以在“用户DSN”页面下看到新创建的名为LSData的DSN了。单击“确定”按钮可完成DSN的建立。
按照图17-16所示的程序框图编程,在DB Tools Open Connectionvi的输入参数Connection information输入创建的数据源名称LSData,运行该程序,status并没有亮起示警,说明数据源可以正常连接。
2.利用UDL连接数据库
Microsoft还提供了另一种技术,即ActiveX数据对象ADO(ActiveX Data Objects)技术。ADO是Microsoft提出的应用程序接口(API)用以实现访问关系或非关系数据库中的数据。ADO使用通用数据连接UDL(Universal Data Link)来获取数据库信息,以实现数据库连接。
在Datamdb所在的文件夹下单击鼠标右键,在d出的快捷菜单中选择新建>>Microsoft数据链接,如图17-17所示。命名新建的数据库链接名称为LSDataudl。
LabVIEW与数据库的链接 - leo - Leo
图17-16 在程序中连接数据库
LabVIEW与数据库的链接 - leo - Leo
图17-17 新建数据链接
双击打开LSDataudl文件,切换到“提供程序”页面,从中选择“Microsoft Jet 40 OLE DB Provider”,设置完成单击“下一步”按钮,如图17-18所示。
切换到“连接”页面,在“1选择或输入数据库名称”文本框右侧,单击LabVIEW与数据库的链接 - leo - Leo按钮,选择已经创建好的数据库。完成后单击“测试连接”按钮,d出“测试连接成功”对话框,表示已经成功连接数据库,如图17-19所示。
LabVIEW与数据库的链接 - leo - Leo
图17-18 “数据链接属性”对话框
LabVIEW与数据库的链接 - leo - Leo
图17-19 成功连接数据库
完成后,按照图17-20所示的程序框图编程。DB Tools Open Connectionvi的输入参数Connection Information输入前面所创建的UDL文件路径。运行该VI,status灯并无示警亮起,说明连接成功。
LabVIEW与数据库的链接 - leo - Leo
图17-20 在程序中成功连接数据库
1722 数据库基本 *** 作
连接上数据库后,就可以利用Database Connectivity的工具包对数据库进行 *** 作了。本节介绍数据库中比较常用的几种基本 *** 作,包括创建表格、删除表格、添加记录、查询记录等。
1.创建表格
数据表中的每一行表示一个记录,在工具包中用Record来表示;每一列表示记录中的一个字段,在工具包中用Field表示。能够标识表中某一行的属性或属性组称做主键,一个表只能拥有一个主键,但可以有多个候选索引。
查询上一节中的函数介绍,VI:LabVIEW与数据库的链接 - leo - Leo用于实现创建新的表格,输入参数Table是所创建的新的数据表名称,Column Information指定表格每一列的属性,如图17-21所示。
Column name输入字段名称,data type输入该字段的数据类型,siz输入该字段的大小。注意这里的data type与LabVIEW所能支持的数据类型不同,图17-22所示为data type下拉框所显示的数据类型。
图17-23所示为LabVIEW数据类型和Database Connectivity工具包中data type数据类型的对应关系。
LabVIEW与数据库的链接 - leo - Leo LabVIEW与数据库的链接 - leo - Leo
图17-21 Column Information栏 图17-22 数据库中data
LabVIEW与数据库的链接 - leo - Leo
图17-23 LabVIEW数据类型与
type的数据类型 DB Tools中数据类型对照
按照图17-24所示的程序框图编程,table输入Data2008报表,column information分别输入[Name/String/50]和[Age/String/50]。运行该程序后,打开Datamdb,创建一个新的表格名为2008报表,有两个字段:Name和Age。
2.删除表格
相应的,也有删除数据库表格的函数。查找一下上一节数据库函数的介绍,DB Tools Drop Tablevi具有删除数据库表格的功能。
LabVIEW与数据库的链接 - leo - Leo
图17-24 创建新表
按照图17-25所示的程序框图编程,把之前创建的数据库表格“2008报表”删除。
双击打开Datamdb数据库查看,2008报表数据文件已经成功被删除。
LabVIEW与数据库的链接 - leo - Leo
3.添加记录
添加一条记录由函数DB Tools Insert Datavi来完成。该VI的输入参数table表示要插入的数据库表格名称;data表示要插入的数据;columns表示对应的字段的名字,其数据类型是一个字符串数组。
方法/步骤
首先介绍下MAX的主界面,整体分为4部分,第1部分是菜单栏,主要包括文件,编辑,查看,工具,帮助几个选项。第二部分主要是我的系统里边的一些硬件和软件的配置与状态查看。第三部分是本机的的系统配置,其中系统配置web访问选项可以根据需要选择本地与远程或者本地配置。第四部分本机系统资源的一些状态情况。
主要介绍一下我的系统里边几个常用功能,数据邻居、设备和接口、历史数据、换算、软件这几个模块。
数据邻居:右键点击数据邻居可以创建NI-DAQmx任务与NI-DAQmx全局虚拟通道。点击NI-DAQmx任务可以选择创建采集信号任务和生成信号任务。
设备与接口:用来管理本机连接的一些硬件设备,如USB插入设备,PCI插入设备,网络接入设备,RS232、RS485串口接入设备等。也可以在这里创建一些数据采集仿真设备来进行仿真练习。对这些设备可以进行重置、自检、测试、创建任务等 *** 作来查看接入设备的状态。
历史数据:
历史数据用于访问数据库、数据记录或数据视图。具有查看数据、创建数据库、删除数据录等功能。 *** 作方法右键点击历史数据-新建-Ciradel 5 Database的数据库 *** 作。
软件:
软件这个模块可以查看目前安装的一些软件模块,另外右键点击软件可以根据需要更改和删除一些功能模块(因为我们在安装Labview时,一般不需要安装所有的功能模块,在这里可以进行模块的增加或删除)。
6
IVI Drivers:
IVI兼容工具包包含了若干IV类驱动程序和支持库,用来开发和实现各种运用仪器互换性的应用系统。可以无缝集成多种 IVI 驱动程序以及 LabWindows/CVI IVI-C 驱动程序开发向导。
查询出来就是了:比如:
Student bean=new Student();
StudentDAO sdao=new StudentDAO();
List<Student> slist=(List<Student>)sdaoselectStudent(bean);//查询学生的方法
if(slistsize()>0)
{
for(int i=0;i<slistsize();i++)
{
Student student=(Student)slistget(i);
c1addItem(studentgetKemu());
c2addItem(studentgetNianji());
c3addItem(studentgetBanji());
c4addItem(sutdentgetFenshu());
}
}
//这样就行了,上面都是现打的,那些java bean,字段,方法应该能看明白吧。
你的DBTOOL没有正确安装,卸载重装吧
另,DBTOOL是NI 的官方收费工具,如果只是写ACCESS何不使用labsql呢?这个不收费,也比较好用,我刚刚一个开发中就是用的这个
简单写了一下。其实用C++应该会更快,不存在生成新字符串的开销(比如下面对每一个单词都ToLower了一遍,因此会生成很多个新串)
static Dictionary<string, string> dict = new Dictionary<string, string>();
public static void InitDict()
{
dictAdd("yang", "YAng"); //将每个关键字都小写化,作为Dictionary的key。使用Dictionary可以在O(1)的时间内判断出单词是不是关键字
dictAdd("xu", "Xu");
//Add other key words
}
public static string Replace(string content)
{
StringBuilder sb = new StringBuilder();
int start = 0, position = 0;
while (start < contentLength)
{
position = contentIndexOf(' ', start); // 假设文本只包含字母和空格,否则还需要考虑逗号句号等情况
if (position <= 0) //可能搜索到达了文本末端,而末端不是空格
{
position = contentLength; //取最后一个单词
}
string word = contentSubstring(start, position - 1);
if (dictContainsKey(wordToLower()))
{
sbAppend(dict[wordToLower()]);
}
else
{
sbAppend(word);
}
sbAppend(' ');
start = position + 1;
}
return sbToString();
}
}
以上就是关于LabVIEW创建数据库表格问题全部的内容,包括:LabVIEW创建数据库表格问题、NI公司的大部分设备都可以应用软件配置为什么、java中JComboBox中的数据如何从数据库中取得等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)