1. 一些小感想
现在刚刚从504所回来,虽然累但是感觉到了前所未有的充实感。从12月份底开始到现在,从刚开始很简单的LabVIEW上位机程序,到现在一个麻雀虽小,五脏俱全的完整的上位机程序,涉及到串口通信,Acess数据库连接与使用,SQL语句,ActiveX技术,FTP文件传输协议,示波器控制,生产者消费者模式的队列数据结构,动态调用技术,数据采集,程序控制等技术****。但是呢,网上有一句话就是****软件的开发周期绝对是预期计划的至少两倍时间,现在说实话我自己感觉程序还有很多地方需要进行优化,完成这些优化后这个程序还不期会出现什么BUG。
除了技术上学习到的东西,我觉得更令人兴奋的是,这段时间在团队里我们协同工作一起完成项目的这个经历。首先是认识了非常厉害的孟哥,从化学专业转来搞电,然后做的非常精通。我们不论是在学校调试还是在所里调试的时候,遇到问题我们互相讨论,我感觉我迅速抛弃了自己的那种疲惫的精神状态,就算是整整搞一整天我也丝毫不觉得累。上周日,周六晚上我和朋友出去吃饭喝酒,晚上打麻将到3点多,然后周日早上去研究所调试到快凌晨1点才回到宿舍,我丝毫不困不累,我从来没感觉到这种快感。1月份刷完了电视剧Strike Back,Scott和Stonebridge以及Section 20的这么一个Team的合作,特别感人肺腑,我想我想要的就是Team这么一个感觉。
之后接触到了一些前辈老师,以及研究所的一些人,当然不像我和孟哥那么熟悉,但是我们一起在为这个事情付出的努力,以及从他们身上学到的东西足以使我感到振奋并且让我得到提高。
嗯,非常感谢!
2. LabVIEW与数据库的那些事
首先呢,LabVIEW开发系统自带有与数据库进行连接的库,注意是连接,因为直接通过LabVIEW是无法创建数据库的,LabVIEW只自带了和数据库进行连接的库。但是通过ActiveX是可以创建数据库的。
1). 具体介绍一下如何通过ActiveX(自动化引用句柄)来创建数据库:
自动化引用句柄-与ActiveX函数配合使用。当打开一个指向ActiveX服务器对象的引用,且需要将引用作为参数传递给另一个VI时,可使用该类引用句柄控件。如需指定引用句柄的类型,可右键单击控件,从快捷菜单中选择选择ActiveX类»浏览,打开从类型库中选择对象对话框,浏览可用的ActiveX服务器应用程序。
首先在前面板上点击右键,在引用句柄下选择自动化引用句柄,放置在前面板上,在建立的图标上右击,点击选择ActiveX类,自定义,进入选择对话框。如图所示:
选择如图所示的ADOX._Catalog后,转入程序框图,编写程序如图所示:
该程序最关键的一步是设置合理的ConnectString,这个ConnectString是代表数据库的连接信息。这个连接信息是使用LabVIEW自带库函数操作数据库最关键的一个信息了,因此集中放在下一节解释。
2). 如何使用LabVIEW自带的Database库函数操作数据库
连接并使用数据库的一个基本流程就是,open connection->Execute Query->Fetch Recordset Data->Free Object->Close connection.
如图所示:
其中open connection函数涉及到连接数据库一个关键的内容就是设置合理的连接字符串,连接字符串包括Provider和Data Source,Provider一般是与连接的数据库属性有关的,在这里我使用的是Microsoft的Acess因此连接字符串的Provider是:Provider=Microsoft.JET.OLEDB.4.0;然后DataSource是你将要连接的数据库地址。将这两个字符串连接起来,传入open connection函数中的connection information端子上。
Execute Query函数接受一个SQL语句的字符串,用于进行数据库操作。SQL语句语法等内容请移步:SQL语句
其中Fetch Recordset是用于读取数据的,这里面有另外一个核心技术,就是将数据库查询出来的变体数据转换至字符串数据,下面将会介绍。
最后是Free Object和Close connection函数,也就是释放对象并且关闭连接。在这里我曾经遇到一个问题,利用for循环进行了多次的Execute Query之后调用Free Object和Close Connection会输出504错误,Open recordset object,由于vi也能正常实现功能,所以这个也不能完全算是错误,但是如果错误随着错误流输出的话会影响以后程序的运行,因此在Close connection函数后面加一个清楚错误函数,将该504错误清除。
3). 关于Fetch Recrodset函数读取出的变体数据操作方法
4). 如何使用LabSQL ADO Functions操作数据库
先挖坑在这里,以后再填上