石鑫华视觉 发表于 2022-3-22 17:01:30

LabVIEW基于ODBC使用LabSQL操作SQLite数据库

LabVIEW基于ODBC使用LabSQL操作SQLite数据库

在创作《LabVIEW HALCON图像处理入门教程时》时,作者发现LabVIEW在操作Access数据库时,存在缓慢内存增加的情况。而且在64位LabVIEW环境中,访问Access时,会引起灾难性错误(详情)。所以,使用ACCESS数据库来存储数据,并不是非常好的选择方案。那就只能替换为其它的数据库方式。但是像微软的SQL Server、MySQL、ORACLE等数据库,其实都是非常大型的数据库,通常是用于在线环境的,而且还有商业授权的问题,并不是非常建议使用。这里作者研究了一下SQLite数据库,非常适合于LabVIEW环境下本地数据库的开发应用。SQLite是一款轻量型的数据库,开源免费的,在我们的手机上、电脑上,其实很多APP、软件都是使用SQLite数据库来管理数据的,像QQ、微信等。其数据库本身就是一个*.db文件。配置环境非常简单,可以说是0配置。可以搜索一下,看到有些人直接调用其sqlite3.dll/sqlite.dll的动态库中的函数,来操作SQLite数据库。当然,你也可以这样做。在这里,我们使用的是LabVIEW中的一款免费的库LabSQL来操作。这里用到的LabSQL库可以参考链接:LabVIEW可用的LabSQL免费数据库工具包(2013版)http://visionbbs.com/thread-2078-1-1.html?fromuid=9。LabSQL性能其实也是很强大的,而且很轻巧,基于ADO方式来访问各种数据库。作者使用该库,可以成功访问Access/SQL Server/MySQL/SQLite等数据库。LabSQL库是基于操作系统的ODBC数据源来驱动访问数据库的,所以得先有SQLite的ODBC驱动。
SQLite是一款独立的数据库,不需要配置,也不需要安装环境,有需要,直接在别的地方复制一个*.db文件都可以使用。和Access有点类似(*.mdb),但是也有许多不同。Aceess是必须要基于微软的office专业版套件的,要想查看或编辑,还要安装专业版的office才会有access(得花钱买正版)。SQLite则不一样,其有多种免费的管理工具(交互界面)。这里作者使用的是SQLiteStuidio3.1.1中文版(最新的好像有3.3.3,但是中文语言时,界面没有完全汉化),退而求其次,使用了3.1.1版,问题不大。
SQLite Studio 3.1.1百度网盘下载链接:
链接:**** Hidden Message *****
提取码:msf0
使用SQLite Studio可以创建新的db数据库,也可以编辑管理现有的数据库。



我们这里创建一个3.db的数据库。这里创建数据库的过程,作者没有研究是不是可以使用LabVIEW来实现。因为本身就是个db文件,一般就是创建好后,直接复制到其它项目中,然后利用创建修改表等方式来处理。所以,这里就没研究在LabVIEW中如何创建数据库。看了一下别人创建,有使用sqlite3.exe官方工具来创建数据库。

创建3.db数据库

创建的数据库没有表,是空的。可以在SQLite Studio创建新的表,也可以在LabVIEW中使用命令来创建表。

数据库文件已经有了,接下来就是处理SQLite的ODBC驱动。因为LabSQL是需要使用ODBC驱动来连接数据库的。SQLite的ODBC驱动,相对来说可用的比较少。有一些甚至还是收费的。这里找到了一个免费的(不清楚具体是免费的,还是破姐的)。版本也比较早(2014年的,不是很清楚在WIN10/Win11下支持如何,作者还在使用WIN7)。在安装时(作者同时安装了32/64位下的驱动),可以安装驱动SQLite2Driver。但是安装后,也是有SQLite3的驱动的:

SQLite ODBC驱动
下载地址:
链接:**** Hidden Message *****
提取码:wk5o


安装好SQLite ODBC Driver后,就可以在LabVIEW环境中,使用LabSQL来连接SQLite数据库了。其打开连接的的字符串方式是:
Driver={SQLite3 ODBC Driver};Database=数据库路径/xxx.db;


LabVIEW 32位环境下示例
本示例的基本功能:创建数据库链接,打开SQLite数据库,查询数据库中是否有指定的表(没有表,则创建新的表;有表,则使用现有的表),插入(如已经存在则忽略)新的数据,查询数据库中的数据,关闭连接

LabVIEW 64位环境下也可以使用

使用SQLite Studio中可以看到,已经创建了表,并插入了两行数据(一行是32位下插入的,另一行是64位下插入的)。

示例LabVIEW 2020SP1f1 32位或64位:


lxy7208 发表于 2023-6-17 23:37:54

视觉项目评估,就到视觉论坛http://labviewvision.com,物美价廉,技术过硬,服务周到,值得拥有

monya99 发表于 2024-7-19 08:41:39

机器视觉论坛http://visionbbs.com,专业的LabVIEW机器视觉与图像处理论坛

dgelety 发表于 2023-11-26 09:10:59

谢谢分享         

bqlei 发表于 2022-4-18 18:21:36

学习一下

leabo7180 发表于 2022-7-1 09:48:04

感谢楼主大神

wangzhewei0000 发表于 2022-8-11 17:18:39

111111111111111111

we456gd 发表于 2022-11-23 10:12:57

学习

吕云飞 发表于 2022-12-1 16:15:56

duobu

adma 发表于 2023-2-20 10:21:13

LabVIEW基于ODBC使用LabSQL操作SQLite数据库 感觉方便很多

zangsc 发表于 2023-4-11 09:55:48

dfshfdhgfjhfjfdjhfjdhjd

G3K 发表于 2023-4-11 17:45:28

这真的是非常有干货的文章,用NI附加库Sqlite Library比较复杂。

Aire 发表于 2023-5-10 01:13:52

学习
页: [1] 2 3
查看完整版本: LabVIEW基于ODBC使用LabSQL操作SQLite数据库

LabVIEW HALCON图像处理入门教程(第二版)
石鑫华机器视觉与LabVIEW Vision图像处理PDF+视频教程11种全套
《LabVIEW Vision函数实例详解》教程-NI Vision所有函数使用方法介绍,基于NI VISION2020,兼容VDM21/22/23/24