以前笔者在LabVIEW连接MySQL时,直接使用连接字符串来连接数据库进行操作,但是重新换了个系统后,发现连接字符串居然提示“未发现数据源名称并且未指定默认驱动程序” ,无奈当时只能选择DSN来操作数据库。如下所示,第一、第二个使用DSN的方法可以,但是需要到ODBC做好用户数据源设置。第三个直接连接的字符串是不成功的。

在实际操作中,先要ODBC用户数据源设置,无疑会增加麻烦,特别是客户端多的时候,一个个做用户数据源设置就不够人性化了。
今天终于把这个问题解决了!同时,使用SQLite Library操作轻量级的SQLite数据库,这可以替代Access来完成简单的数据存储。
一、利用Create Data Link来生成连接字符串
利用Create Data Link来生成连接字符串,避免字符串的语法错误,在LabVIEW的工具-Create Data Link中来创建。此方法需要mysql的ODBC驱动。
1.1数据连接属性中使用数据源名称,此种方法生成.udl文件,文件里面指定Data Source为DSN中的数据源。在连接mysql数据库时,直接使用.udl文件作为mysql的连接信息(连接字符串)。这样需要设置ODBC用户数据源,和直接使用ODBC用户数据源区别不大。


1.2使用连接字符串来自动生成语法准确的连接信息,操作完成后会在连接字符串中生成:Driver=MySQL ODBC 8.0 Unicode Driver;SERVER=localhost;UID=phpmyadmin;PWD=phpmyadmin;DATABASE=testbt;PORT=3306;COLUMN_SIZE_S32=1 。
同时会生成.dsn文件,里面的信息和连接字符串的一样。在.dsn文件中添加秘密信息PWD=phpmyadmin,然后将这个文件作为mysql的连接信息(连接字符串)也可以连接成功。这样就可以免去再配置ini文件等配置文件来读取连接字符串传递给数据库打开连接函数。


同时也也生成一个.udl文件 。使用方法和上面的使用数据源名称的一样,这里就不再赘述了。

直接使用连接字符串来测试:

二、SQLite Library操作SQLite数据库
SQLite可以作为替代 access的数据库,在使用时无需安装,只要使用SQLite Library操作SQLite的.db文件即可 。虽然access也可以这样操作,但是SQLite更加轻量,可以用在嵌入式的数据库中。智能手机中也是用 SQLite,微信聊天记录也是使用 SQLite来保存的。
SQLite Library封装了 操作SQLite的方法。SQLite也有ODBC的驱动,安装后就可以用Create Data Link来生成连接字符串,然后使用LabVIEW的数据库操作模块来完成数据库操作。但是驱动时收费的。
Library下有很多案例,可以直接修改后使用,这里也不再阐述了。

网友评论