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

【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 *


http://www.kler.cn/a/556214.html

相关文章:

  • 做谷歌SEO的最佳策略是什么?
  • 侯捷 C++ 课程学习笔记:头文件与类的深度解析
  • Brave132编译指南 MacOS篇 - 初始化构建环境(五)
  • java基于数组实现队列
  • iStatistica Pro for Mac v7.0 系统监控工具 支持M、Intel芯片
  • 达梦ET工具的使用
  • Python爬虫基础文件操作
  • Grok 3 开源体验与访问指南
  • 分布式与集群,二者区别是什么?
  • 推荐一个github star45k+进阶的java项目及知识的网站
  • html - - - - - modal弹窗出现时,页面怎么能限制滚动
  • 处理器架构、单片机、芯片、光刻机之间的关系
  • Flutter开发的应用页面非常多时如何高效管理路由
  • vue2和vue3的按需引入的详细对比通俗易懂
  • 《DeepSeek量化炒股入门到精通》
  • 51c自动驾驶~合集51
  • 如何在 SpringBoot 项目使用 Redis 的 Pipeline 功能
  • 删除hive用户后该用户创建的表权限问题及修复
  • 策略模式Spring框架下开发实例
  • 基于Java实现宠物领养救助交流平台设计和实现