多语言展示
当前在线:1139今日阅读:84今日分享:32

LabWindows CVI-Access数据库

NI LabWindows/CVI数据库连接(SQL)工具包提供了一套简单易用的工具,使用户能快速连接本地或远程数据库,并且无需进行结构化查询语言(SQL)编程就可以执行诸多常用的数据库操作。可以更方便地连接各种常用数据库,如Microsoft Access、SQL Server和Oracle。如需高级数据库的功能和灵活性,LabWindows/CVI数据库连接(SQL)工具包还可以提供所有SQL功能。
工具/原料
1

LabWindows CVi

2

Access

3

SQL Tool Kit

实现过程
1

到NI官网下载,注意下载的版本是否支持对应的计算机操作系统和LabWindows/CVI版本;

2

打开LabWindows CVI 2013,选择 New-project,如下图所示;

3

File-New-User Interface(*.uir);

4

在untitled panel界面上放置如下几个控件:Name(字符串),Age(整数),PVale(浮点数),PDateTime(字符串代替时间,因为cvi没有时间控件),Write(Command Button),Close(Command Button);

5

Code-Generate -All Code,弹出如下对话框,选择Yes;

6

Set Target File,选择OK;

7

Generate ALL Code,1)设置Target File:Create New Project;2)Traget Type:Executeable;3)Project Filename;4)Source FileName;5)选择启动Panel;6)选择退出应用程序按钮;点击OK;

8

选择Project Location:Create Project in Current Workspace;Transfer Project Options:Bulid Options;点击OK;

10

新建一个名称为MyDB.mdb数据库,并新建名称为Train的表:包括ID(自动编号),Name(段文本),Age(整数类型),PValue(双精度类型),PDateTime(日期/时间)一共五列;

11

新增如下代码:#include   #include #include 'cviaccess.h'#include 'cvi_db.h'  //Cvi sql toolkit头文件  #include #include static int panelHandle,hdbc,hstat;struct Data{ char Name[10];int Age;double PValue;char PDateTime[20]; }DBData;int main (int argc, char *argv[]){ if (InitCVIRTE (0, argv, 0) == 0)  return -1; /* out of memory */ if ((panelHandle = LoadPanel (0, 'cviaccess.uir', PANEL)) < 0)  return -1; DisplayPanel (panelHandle); RunUserInterface (); DiscardPanel (panelHandle); return 0;}int CVICALLBACK WriteFunc (int panel, int control, int event,         void *callbackData, int eventData1, int eventData2){char sql[1000]='',fileName[260]='',ConnectStr[1000]=''; switch (event) {  case EVENT_COMMIT:     GetProjectDir(fileName); //获取当前目录     strcat(fileName,'\\MyDB.mdb'); //获取当前数据库目录     GetCtrlVal (panelHandle,PANEL_Name, DBData.Name);//获取前面板Name     GetCtrlVal (panelHandle,PANEL_Age, &DBData.Age);//获取前面板Age      GetCtrlVal (panelHandle,PANEL_PValue, &DBData.PValue);//获取前面板Pvalue      GetCtrlVal (panelHandle,PANEL_PDateTime, DBData.PDateTime); //获取前面板PDateTime     sprintf(sql,'Insert into Train(Name,Age,Pvalue,PDateTime)Values('%s',%d,%f,#%s#)',DBData.Name,DBData.Age,DBData.PValue,DBData.PDateTime);//格式化插入新值SQL语言字符串     sprintf(ConnectStr,'Driver={Microsoft Access Driver (*.mdb)};Dbq=%s;Uid=Admin;Pwd=123456',fileName);//格式化数据库连接字符串     hdbc=DBConnect(ConnectStr);//连接数据库     hstat=DBActivateSQL(hdbc,sql);//执行SQL语言     DBDeactivateSQL(hstat);//断开数据库   break; } return 0;}int CVICALLBACK CloseFunc (int panel, int control, int event,         void *callbackData, int eventData1, int eventData2){ switch (event) {  case EVENT_COMMIT:   QuitUserInterface (0);   break; } return 0;}

12

点击RUN,设置控件值Name=Sam,Age=66,PValue=55.55,PDateTime=2016/12/1 8:02:19,然后点击Write;

13

打开MyDB.mdb数据库,其中新值已经写入;

14

其他语法请参考SQL语言,方法基本一致;

注意事项
1

SQL语言语法

2

Access的驱动类型(mdb/accdb);

3

CVI SQL toolkit 和LabVIEW DataBase Connectivity Toolkit区别

推荐信息