石鑫华视觉论坛

 找回密码
 注册会员
查看: 4998|回复: 24

[原创] LabVIEW基于ODBC使用LabSQL操作SQLite数据库

[复制链接]
  • TA的每日心情
    奋斗
    2 小时前
  • 签到天数: 3387 天

    连续签到: 9 天

    [LV.Master]2000FPS

    发表于 2022-3-22 17:01:30 | 显示全部楼层 |阅读模式 来自:广东省东莞市 电信

    注册登陆后可查看附件和大图,以及购买相关内容

    您需要 登录 才可以下载或查看,没有账号?注册会员

    x
    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百度网盘下载链接:
    链接:
    游客,如果您要查看本帖隐藏内容请回复

    提取码:msf0
    使用SQLite Studio可以创建新的db数据库,也可以编辑管理现有的数据库。

    QQ截图20220322162746.png

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

    数据库文件已经有了,接下来就是处理SQLite的ODBC驱动。因为LabSQL是需要使用ODBC驱动来连接数据库的。SQLite的ODBC驱动,相对来说可用的比较少。有一些甚至还是收费的。这里找到了一个免费的(不清楚具体是免费的,还是破姐的)。版本也比较早(2014年的,不是很清楚在WIN10/Win11下支持如何,作者还在使用WIN7)。在安装时(作者同时安装了32/64位下的驱动),可以安装驱动SQLite2Driver。但是安装后,也是有SQLite3的驱动的:
    QQ截图20220322164433.png
    SQLite ODBC驱动
    下载地址:
    链接:
    游客,如果您要查看本帖隐藏内容请回复

    提取码:wk5o


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

    QQ截图20220322165209.png
    LabVIEW 32位环境下示例
    本示例的基本功能:创建数据库链接,打开SQLite数据库,查询数据库中是否有指定的表(没有表,则创建新的表;有表,则使用现有的表),插入(如已经存在则忽略)新的数据,查询数据库中的数据,关闭连接
    QQ截图20220322165734.png
    LabVIEW 64位环境下也可以使用
    QQ截图20220322165824.png
    使用SQLite Studio中可以看到,已经创建了表,并插入了两行数据(一行是32位下插入的,另一行是64位下插入的)。

    示例LabVIEW 2020SP1f1 32位或64位:
    SQLite.vi (20.04 KB, 下载次数: 3, 售价: 10 元)
    3.db (3 KB, 下载次数: 10)
    回复

    使用道具 举报

  • TA的每日心情
    难过
    2024-9-27 15:35
  • 签到天数: 1005 天

    连续签到: 1 天

    [LV.10]1000FPS

    发表于 2023-6-17 23:37:54 | 显示全部楼层 来自:广东省东莞市 联通
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 98 天

    连续签到: 2 天

    [LV.6]600FPS

    发表于 2024-7-19 08:41:39 | 显示全部楼层 来自:台湾省 中华电信(HiNet)数据中心
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2024-8-14 18:14
  • 签到天数: 412 天

    连续签到: 1 天

    [LV.9]900FPS

    发表于 2023-11-26 09:10:59 | 显示全部楼层 来自:广东省东莞市 电信
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2022-7-1 09:48:04 | 显示全部楼层 来自:山西省运城市 移动
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2022-8-11 17:18:39 | 显示全部楼层 来自:浙江省宁波市 电信
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2024-3-7 02:11
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]100FPS

    发表于 2023-2-20 10:21:13 | 显示全部楼层 来自:浙江省 电信中心网络
    LabVIEW基于ODBC使用LabSQL操作SQLite数据库 感觉方便很多
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2023-4-11 09:55:48 | 显示全部楼层 来自:江苏省苏州市 电信
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2023-4-11 17:41
  • 签到天数: 9 天

    连续签到: 1 天

    [LV.3]300FPS

    发表于 2023-4-11 17:45:28 | 显示全部楼层 来自:江苏省苏州市 电信
    这真的是非常有干货的文章,用NI附加库Sqlite Library比较复杂。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册会员

    本版积分规则

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

    QQ|石鑫华视觉论坛 |网站地图

    GMT+8, 2024-11-25 10:11

    Powered by Discuz! X3.4

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表