LabWindows CVI-Access数据库
来源:网络收集 点击: 时间:2024-03-27到NI官网下载,注意下载的版本是否支持对应的计算机操作系统和LabWindows/CVI版本;
2/14打开LabWindows CVI 2013,选择 New-project,如下图所示;

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

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

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

Set Target File,选择OK;

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

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

生产初始化代码:
#include cvirte.h
#include userint.h#include cviaccess.hstatic int panelHandle;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=,fileName=,ConnectStr=;switch (event){case EVENT_COMMIT: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;}


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


新增如下代码:
#include cvirte.h#include userint.h#include cviaccess.h#include cvi_db.h //Cvi sql toolkit头文件
#include ansi_c.h#include utility.hstatic int panelHandle,hdbc,hstat;struct Data{char Name;int Age;double PValue;char PDateTime;}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=,fileName=,ConnectStr=;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;}


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

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

其他语法请参考SQL语言,方法基本一致;
注意事项SQL语言语法
Access的驱动类型(mdb/accdb);
CVI SQL toolkit 和LabVIEW DataBase Connectivity Toolkit区别
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_365851.html