当前位置: 首页 > news >正文

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

目录

 一、文件夹的配置

二、编程工具的配置

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

        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

2.导入新添加的sqlite3.h头文件

三、使用SQLite常见API函数

头文件 #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 *

相关文章:

  • nasm - BasicWindowExt_32
  • 当电脑上有几个python版本Vscode选择特定版本python
  • C++ 标准库——函数对象和函数适配器
  • linux文件管理命令ln
  • 算法菜鸡备战3月2日传智杯省赛----0221
  • 大数据组件(四)快速入门实时数据湖存储系统Apache Paimon(3)
  • 《代码随想录第三十九天》——背包问题二维、背包问题一维、分割等和子集
  • 【进程与线程】Linux 线程、同步以及互斥
  • 学习整理安装php的uuid扩展以及uuid调用方法
  • vue2.x中父组件通过props向子组件传递数据详细解读
  • logstash中的input插件(http插件,graphite插件)
  • python杂学
  • 视觉应用工程师(面试)
  • OpenBMC:BmcWeb实例化App
  • 非常简洁的一个 Excel 导出封装,生成多个 Excel 文件并打包成 zip 通过浏览器下载
  • python小项目编程-中级(1、图像处理)
  • 【蓝桥杯集训·每日一题2025】 AcWing 6118. 蛋糕游戏 python
  • 欧洲跨境组网专线:企业出海的高效网络解决方案
  • Python(二十二)实现各大跨境船公司物流查询CMA船司物流查询
  • DeepSeek技术演进史:从MoE到当前架构
  • 荆门哪里有专门做企业网站的/制作网站模板
  • 网站建设与实现 文献综述/图片搜索
  • webform网站开发经历/百度打广告怎么收费
  • 学习css网站开发/厦门seo推广优化
  • 基层消防力量建设/seo优化关键词是什么意思
  • 别人做的网站域名到期怎么办/培训网站