news 2026/5/7 20:26:32

【PB案例学习笔记】-36PB连接SQLite数据库

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【PB案例学习笔记】-36PB连接SQLite数据库

写在前面

这是PB案例学习笔记系列文章的第33篇,该系列文章适合具有一定PB基础的读者。

通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。

文章中设计到的源码,小凡都上传到了gitee代码仓库https://gitee.com/xiezhr/pb-project-example.git

需要源代码的小伙伴们可以自行下载查看,后续文章涉及到的案例代码也都会提交到这个仓库【pb-project-example

如果对小伙伴有所帮助,希望能给一个小星星⭐支持一下小凡。

一、小目标

我们日常开发一个应用,不管应用再小,基本上都离不开数据库的支持。

PB对一些主流的大型关系型数据库(OracleSQLServerMySQL)提供了专用的数据库接口,对一些小型数据库如

(ExcelAccess)数据库提供了ODBC接口支持。

通过本案例,我们PB连接SQLite数据库,并且查询数据表中数据显示出来。

最终实现效果如下

二、SQLite数据库简介

2.1 什么是 SQLite?
  • 轻量级数据库:SQLite 是一个小型、快速、零配置的数据库引擎
  • 文件型数据库:整个数据库存储在一个单独的文件中,便于管理和传输
  • 无需服务器:不像 MySQL、PostgreSQL 需要独立的服务器进程,SQLite 直接嵌入到应用程序中
2.2 SQLite 主要特点
  • 零配置:不需要复杂的安装和配置过程
  • 跨平台:支持各种操作系统(Windows、Linux、macOS 等)
  • 事务支持:支持 ACID 事务,保证数据一致性
  • 标准 SQL:支持大部分标准的 SQL 语法
  • 开源免费:完全免费使用,源码开放
2.3 SQLite 适用场景
  • 移动应用:Android、iOS 应用常用 SQLite 存储本地数据
  • 桌面软件:许多桌面程序用它来保存配置和用户数据
  • 小型网站:访问量不大的网站可以使用
  • 原型开发:快速开发时的理想选择
2.4 SQLite 局限性
  • 并发性有限:不适合高并发的大型应用
  • 功能相对简单:缺少一些企业级数据库的高级功能
  • 网络访问:不支持远程网络访问(只能本地文件访问)

三、SQLite数据库安装

  1. 到官网下载SQLite数据库安装包
    官网地址:https://www.sqlite.org/download.html
    需要下载sqlite-tools-win-x64-*.zip或者sqlite-dll-win-x86-*.zip文件和sqlite-dll-win-x64-*.zip压缩文件

  2. 安装SQLite数据库
    创建文件夹C:\sqlite,并在此文件夹下解压上面两个压缩文件,将得到 sqlite3.def、sqlite3.dll 和 sqlite3.exe 文件。

  3. 配置环境变量
    添加 C:\sqlite 到 PATH 环境变量,最后在命令提示符下,使用 sqlite3 命令,将显示如下结果。

    C:\Users\16663>sqlite3 SQLite version 3.50.4 2025-07-30 19:33:53 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database.

四、数据库表准备

① 创建数据库文件

使用脚本.open db_file_name命令,创建数据库文件

② 创建员工信息表employees

使用create table 语句创建表

CREATETABLEemployees(idINTEGERPRIMARYKEYAUTOINCREMENT,nameTEXTNOTNULL,ageINTEGERNOTNULL,departmentTEXTNOTNULL,positionTEXTNOTNULL,salaryREALNOTNULL,hire_dateTEXTNOTNULL);

③ 插入数据,最终表数据如下

使用yong insert into employees 语句插入10条员工信息

INSERTINTOemployees(name,age,department,position,salary,hire_date)VALUES('张三',28,'技术部','软件工程师',8000,'2022-01-15'),('李四',35,'市场部','市场经理',9000,'2021-05-20'),('王五',30,'人事部','人事专员',6000,'2020-03-10'),('赵六',40,'财务部','财务经理',12000,'2019-07-25'),('钱七',25,'技术部','前端工程师',7000,'2023-02-01'),('孙八',33,'技术部','后端工程师',8500,'2021-11-12'),('周九',29,'市场部','市场专员',6500,'2022-08-30'),('吴十',38,'人事部','人事经理',11000,'2018-06-18'),('郑十一',27,'财务部','会计',7500,'2022-04-22'),('冯十二',31,'技术部','测试工程师',7200,'2020-09-15');

④ 查询数据看是否插入成功

使用select 语句查询数据

五、创建程序基本框架

① 新建examplework工作区

② 新建exampleapp应用

③ 新建w_main窗口,将title设置为“员工信息”

以上步骤,由于篇幅原因,这里不再赘述。忘记了的小伙伴可以翻一翻该系列文章的第一篇复习一下

六、配置sqlite数据库ODBC驱动

  1. 下载SQLite数据库ODBC驱动
    小伙伴可以网上搜索下载,或者使用晓凡下载好的
    链接:https://pan.quark.cn/s/4d821d1d9585

  2. 启动ODBC管理工具

  3. 新增DSN,选择SQLite驱动

  4. 选择创建好的数据库

  5. 测试是否连接成功

七、建立DB Profile

① 新建DB Profile

② 配置数据库连接信息

③ 测试是否连接成功

点击【Test Connection】按钮,出现下面提示表示连接成功

八、创建数据窗口

① 单击菜单栏上的File–>New命令,在弹出的窗口中选择DataWindow选项卡中的Grid风格的数据窗口

② 选择Quick Select

③ 选择employees表并选择需要展示的表字段

⑥ 将数据窗口保存为d_employees

七、在窗口中添加控件

① 在w_main窗口中添加2个CommandButton控件,分别为cb_1cb_2,Text分别为查询和退出

② 在w_main窗口上添加DataWindon控件,名称为dw_1

  • HScrollBar框勾选上,横向滚动条(当横向显示不下时,会自动产生滚动条)

  • VScrollBar框勾选上,纵向滚动条(当纵向显示不下时,会自动产生滚动条)

  • 将数据窗的DataObject设置成d_employees

八、编写代码

① 单击开发界面左边的System Tree中的exampleapp对象,并在其Open事件中添加如下脚本

SQLCA.DBMS="ODBC"SQLCA.AutoCommit=FalseSQLCA.DBParm="ConnectString='DSN=sqlite3DB',MsgTerse='Yes',DelimitIdentifier='Yes'"connect;open(w_main)

② 在dw_1constructor事件中添加如下代码

this.settransobject(sqlca)

② 在刚才添加的【查询】按钮cb_1clicked中添加如下代码

//使数据窗口与事务对象连接dw_1.settransobject(sqlca)//执行检索操作dw_1.retrieve()

③ 在【退出】按钮cb_2clicked中添加如下代码

close(parent)

④ 单击开发界面左边的System Tree中的exampleapp对象,并在其close事件中添加如下脚本

//关闭程序释放资源disconnect;

九、运行程序

最后,运行程序,看看能不能正常查询出sqlite数据库中的数据

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/7 20:25:34

开源ChatGPT WebUI:自托管部署、核心功能与安全实践全解析

1. 项目概述:一个开源ChatGPT WebUI的诞生与价值最近在GitHub上看到一个名为“HemulGM/ChatGPT”的项目,点进去一看,发现这是一个基于Web的ChatGPT用户界面。作为一个长期关注AI应用落地的开发者,我立刻来了兴趣。这不仅仅是一个简…

作者头像 李华
网站建设 2026/5/7 20:15:33

GoPro视频GPS数据提取终极指南:三招解锁隐藏的运动轨迹

GoPro视频GPS数据提取终极指南:三招解锁隐藏的运动轨迹 【免费下载链接】gopro2gpx Parse the gpmd stream for GOPRO moov track (MP4) and extract the GPS info into a GPX (and kml) file. 项目地址: https://gitcode.com/gh_mirrors/go/gopro2gpx 你是否…

作者头像 李华
网站建设 2026/5/7 20:14:26

天降紫微星是谁凭作封神,海棠山铁哥《第一大道》震碎影视圈

内娱多年,被流量泡沫与资本套路双重绞杀。 所谓“爆款”,不过是 IP 情怀的残喘,流量数据的浮肿。 没有创作核,没有时间的朋友。直到海棠山铁哥横空出世—— 天降紫微星,不靠炒作,只靠一部《第一大道》。 一…

作者头像 李华
网站建设 2026/5/7 20:14:25

终极指南:Linux内核漏洞容器逃逸的5大安全威胁与防护策略

终极指南:Linux内核漏洞容器逃逸的5大安全威胁与防护策略 【免费下载链接】linux-kernel-exploits linux-kernel-exploits Linux平台提权漏洞集合 项目地址: https://gitcode.com/gh_mirrors/li/linux-kernel-exploits Linux内核漏洞是容器环境中最隐蔽也最危…

作者头像 李华