【Qt】数据库编程(SQLite API)

news/2025/2/22 5:36:32

目录

 一、文件夹的配置

二、编程工具的配置

1.指定库文件及其输出可执行文件位置

sqlite3.h%E5%A4%B4%E6%96%87%E4%BB%B6%E2%80%8B%E7%BC%96%E8%BE%91%E4%B8%89%E3%80%81%E4%BD%BF%E7%94%A8SQLite%E5%B8%B8%E8%A7%81API%E5%87%BD%E6%95%B0-toc" name="tableOfContents" style="margin-left:40px">        2.导入新添加的sqlite3.h头文件​编辑

三、使用SQLite常见API函数

1.打开数据库

2.关闭数据库

3.获取错误代码

4.获取错误信息

5.预编译SQL语句

6.绑定条件变量

7.结果集获取

8.行数据获取


 一、文件夹的配置

二、编程工具的配置

1.指定库文件及其输出可执行文件位置

LIBS+=$$PWD/lib/sqlite3.lib
DESTDIR=bin

  • LIBS+=$$PWD/lib/sqlite3.lib用于指定项目链接时需要包含的库文件,这里链接的是 SQLite3 数据库的库文件。

  • DESTDIR=bin用于指定项目构建生成的可执行文件或库文件的输出目录为 bin

sqlite3.h%E5%A4%B4%E6%96%87%E4%BB%B6%E2%80%8B%E7%BC%96%E8%BE%91%E4%B8%89%E3%80%81%E4%BD%BF%E7%94%A8SQLite%E5%B8%B8%E8%A7%81API%E5%87%BD%E6%95%B0" name="2.%E5%AF%BC%E5%85%A5%E6%96%B0%E6%B7%BB%E5%8A%A0%E7%9A%84sqlite3.h%E5%A4%B4%E6%96%87%E4%BB%B6%E2%80%8B%E7%BC%96%E8%BE%91%E4%B8%89%E3%80%81%E4%BD%BF%E7%94%A8SQLite%E5%B8%B8%E8%A7%81API%E5%87%BD%E6%95%B0">2.导入新添加的sqlite3.h头文件

三、使用SQLite常见API函数

sqlite3.h%3E" name="%E5%A4%B4%E6%96%87%E4%BB%B6%20%23include%20%3Csqlite3.h%3E">头文件 #include <sqlite3.h>

1.打开数据库

int sqlite3_open(const char *,sqlite3 **db)

参数:1数据库文件【IN】

           2、sqlite3 数据指针【out】

2.关闭数据库

int sqlite3_close(sqlite3 *db)

参数:1数据库文件【IN】

3.获取错误代码

int sqlite3_errcode(sqlite3 *db)

参数:1sqlite3结构指针

4.获取错误信息

const char *sqlite3_errmsg(sqlite3 *db)

参数: sqlite3结构指针

5.预编译SQL语句

sqlite3_stmt 是 SQLite 库中的一个重要结构体,它代表了一个预编译的 SQL 语句对象,也被称为 “准备好的语句(prepared statement)”。

int sqlite3_prepare(sqlite3*, const char*, int,  sqlite3_stmt**,const char**)

参数:

        1数据库连接指针【IN】

        2sql语句【IN】

        3sql语句最大字符数【IN】

        4、处理后语句statement【out】

        5、返回sql语句未使用部分的指针【out】

6.绑定条件变量

int sqlite3_bind_text(sqlite3_stmt*, int, const char*, int n, void(*)(void*));

参数:

1.sqlite3_stmt*预编译 SQL 语句对象指针。

2.int占位符位置,从 1 开始计数。

3.const char*要绑定的文本数据指针。

4.int n文本数据长度

5.void(*)(void*)回调函数指针,常用 SQLITE_STATIC 或 SQLITE_TRANSIENT 处理内存。

返回 SQLITE_OK 表示绑定成功,否则失败。

相关函数:

        int sqlite3_bind_int(sqlite3_stmt*, int, int)

int sqlite3_bind_double(sqlite_stmt *pstmt,int ,double value)

int sqlite3_bind_blob(sqlite3_stmt*, int, const void*, int n, void(*)(void*))

7.结果集获取

int sqlite3_step(sqlite_stmt *pstmt)

参数:1statement对象【IN】

使用说明:

        返回SQLITE_ROW表示准备好一行的数据。

        返回SQLITE_DONE表示执行完成,无数据。

        如果只是执行SQL,则该函数只调用一次即可。

8.行数据获取

int sqlite3_column_int(sqlite_stmt *pstmt,int col)

参数:1pstmt-statement对象【IN】

           2、col-列位置,0开始编号

const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol);

不同类型的函数调用:

qDebug()<<"user_id="<<sqlite3_column_int(pstmt,0);

strcpy(name,(const char *)sqlite3_column_text(pstmt,1));

qDebug()<<"user_name="<<name;

//要将const unsigned char *转化为const char *


http://www.niftyadmin.cn/n/5861649.html

相关文章

边缘计算在工程中的应用与实践

随着物联网和智能制造的快速发展&#xff0c;边缘计算作为一种新兴的计算模式&#xff0c;正逐渐成为工程领域的重要技术。本文将探讨边缘计算的概念、优势、应用场景&#xff0c;以及Kubeedge边缘计算平台在工程实践中的应用。 一、边缘计算的概念 边缘计算是一种分布式计算…

波兰发布世界首个双足肌肉骨骼机器人,细节高度模拟人类生物特征

作为全球首个双足肌肉骨骼机器人Protoclone V1&#xff0c;今天我想用最直白的语言&#xff0c;讲讲这台“硅基生命体”背后的故事。 你可能在视频里见过它——光滑的黑色面罩下&#xff0c;1000根人造肌肉纤维像真正的肌腱般收缩舒张&#xff0c;液压油在仿生血管里奔涌时&am…

【JavaWeb学习Day17】

Tlias智能学习系统&#xff08;员工管理&#xff09; 新增员工&#xff1a; 三层架构职责&#xff1a; Controller&#xff1a;1.接收请求参数&#xff08;员工信息&#xff09;&#xff1b;2.调用service方法&#xff1b;3.响应结果。 具体实现&#xff1a; /***新增员工…

RFID测温技术:电力设备安全监测的新利器

在当今高度依赖电力的现代化社会中&#xff0c;稳定且可靠的电力供应是社会运转的基石。电力设备作为电力系统的关键核心&#xff0c;其运行状态直接关乎电力供应的品质。然而&#xff0c;电力设备长期运行过程中&#xff0c;受到诸如过载、接触不良以及环境因素等多重影响&…

HBase性能优化秘籍:让数据处理飞起来

HBase性能优化秘籍&#xff1a;让数据处理飞起来 数据处理太慢&#xff1f;别担心&#xff0c;这里有解决方案&#xff01; 你是否遇到过这样的情况&#xff1a;随着数据量的不断增加&#xff0c;HBase的查询和写入速度变得越来越慢&#xff1f;别担心&#xff0c;今天我们就…

PTT 票据传递攻击

黄金票据 原理&#xff1a;获取 krbtgt 的哈希后&#xff0c;使用此哈希能离线生成任意域用户的 tgt&#xff0c;域管理员的 tgt 就是黄金票据。 mimikatz.exe "privilege::debug" "lsadump::dcsync /domain:HACK.com /user:HACK\krbtgt /csv" "exit…

H5--开发适配

在 H5 开发中&#xff0c;适配不同设备和屏幕尺寸至关重要&#xff0c;它能确保页面在各种环境下都有良好的显示效果和用户体验。以下介绍几种常见的 H5 开发适配方案&#xff1a; 视口&#xff08;Viewport&#xff09;设置 视口单位是相对于浏览器视口的尺寸进行度量的单位&…

【论文阅读】identifying backdoor data with optimized scaled prediction consistency

https://zhuanlan.zhihu.com/p/17155805706 后门秘密被揭开&#xff1a;用优化的尺度预测一致性识别后门数据 先前的后门防御策略主要集中在识别带有后门的模型或被污染数据的特征&#xff0c;通常假设能够访问到干净的数据。本文深入探讨了一个相对未被充分研究的挑战&#x…