第一步
引入相关文件
①将sqlite一些对应的文件复制到qt的工程文件
②在工程配置文件.pro中加入 LIBS += $$PWD/lib/sqlite3.lib
$$:表示当前工程目录
第二步
在qt中使用sqlite3数据库
①加入数据库头文件 #include “sqlite3.h”
②打开数据库 int res=sqlite3_open(“数据库名”,指针变量);
Sqlite3 * sqldb =nullptr;
返回值:错误的代码
③判断是否打开成功
Sqlite3_errcode();//查看错误号
Sqlite3_errmsg();//查看错误信息
④对数据库进行 *** 作(增删改查等 *** 作)
⑤关闭数据库
Int msg=sqlite3_close();
⑥判断是否关闭成功
Sqlite3_errcode();//查看错误号
Sqlite3_errmsg();//查看错误信息
第二步中的④对数据库进行 *** 作(增删改查等 *** 作)可以使用以下3种方法
①预编译sql语句
int sqlite3_prepare(sqlite3*, const char*, int, sqlite3_stmt**,const char**)
功能:预编译和解析SQL文本,准备执行
参数:
1、数据库连接指针【IN】
2、sql语句【IN】
3、sql语句最大字符数【IN】
4、处理后语句statement【out】
5、返回sql语句未使用部分的指针【out】
返回值:错误代码,参见SQLite错误代码
获取结果集
int sqlite3_step(sqlite_stmt *pstmt)
功能:执行SQL,返回结果集
参数:1、statement对象【IN】
返回值:错误代码,参见SQLite错误代码
使用说明:
返回SQLITE_ROW表示准备好一行的数据。
返回SQLITE_DONE表示执行完成,无数据。
如果只是执行SQL,则该函数只调用一次即可。
行数据获取
int sqlite3_column_int(sqlite_stmt *pstmt,int col)
功能:获取某行数据中的各列值
参数:
1、pstmt-statement对象【IN】
2、col-列位置,从0开始编号
返回值:返回列值
定义完的statement要释放,使用函数重置对象
int sqlite3_reset(sqlite_stmt *pstmt)
功能:重置statement对象资源
参数:1、statement对象【in】
返回值:错误代码,参见SQLite错误代码
②执行sql语句
int sqlite3_exec(sqlite3 *db,const char *sql, sqlite3_callback, void *, char **errmsg)
该函数一般用于不需要结果的 *** 作,比如修改,删除或者添加 *** 作
功能:执行多条或一条SQL语句,并将结果传递给回调函数
参数:
- 数据库连接【IN】
- 要执行的sql语句【IN】
- 回调函数 【IN】
4、传递给回调函数的参数地址【IN】
5、返回的错误信息【out】
返回值:错误代码,参见SQLite错误代码
参数3是一个回调函数
int 函数名(void*,int,char**, char**)
功能: sqlite3_exec每查询到一条记录调用一次该回调函数
参数:
- 传入的参数【IN】
2、结果集的列数【IN】
3、列值 【IN】
4、列名【IN】
返回值:
回调函数如果返回0 那么他会把全部的数据都给查询出来,如果返回大于0 或者没有给返回值,他就只查询一条数据
③SQLite3_get_table 函数(适用于查询数据 *** 作)
int SQLite3_get_table(sqlite3*, const char *sql, char ***presult, int *nrow, int *ncolumn, char **errmsg)
功能:无需回调函数处理,直接查询结果集
参数:
- 数据库连接结构【IN】
2、SQL语句【IN】
3、结果集 【out】
4、行数【out】
5、列数【out】
6、错误信息【out】
返回值:错误代码,参见SQLite错误代码
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)