Sqlite3 Api

Sqlite3 Api

数据库的打开

int sqlite3_open(
  const char *filename,   /* Database filename (UTF-8) */
  sqlite3 **ppDb          /* OUT: SQLite db handle */
);

//返回值为 SQLITE_OK 表示操作正常
//例子       其中sqlite3 * mydb;   mydb.db为数据库
int res = sqlite3_open("./mydb.db",&mydb);

数据库的关闭

int sqlite3_close(sqlite3 *);
//返回值和sqlite3_open 一致
//例子
res = sqlite3_close(mydb);

数据库的操作

使用sqlite3_prepare()

//首先声明
sqlite3_stmt * stat;


//然后将一条sqlite语句解析到stat的语句里面
//int sqlite3_prepare(
// sqlite3 *db,            /* Database handle */
//  const char *zSql,       /* SQL statement, UTF-8 encoded */
//  int nByte,              /* Maximum length of zSql in bytes. */
//  sqlite3_stmt **ppStmt,  /* OUT: Statement handle */
//  const char **pzTail     /* OUT: Pointer to unused portion of zSql*/
//);
sqlite3_prepare( db, “insert into Tbl_2( ID, file_content) values( 10, ? )”, -1, &stat, 0 );//最后一个默认为0,-1表示不限制大小,


//紧接着就是把带有?的stat的与对应的数值进行绑定
//具体的函数有:
int sqlite3_bind_blob(sqlite3_stmt*, int, const void*, int n, void(*)(void*));

int sqlite3_bind_double(sqlite3_stmt*, int, double);

int sqlite3_bind_int(sqlite3_stmt*, int, int);

int sqlite3_bind_int64(sqlite3_stmt*, int, sqlite3_int64);

int sqlite3_bind_null(sqlite3_stmt*, int);

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

int sqlite3_bind_text16(sqlite3_stmt*, int, const void*, int, void(*)(void*));

int sqlite3_bind_value(sqlite3_stmt*, int, const sqlite3_value*);

int sqlite3_bind_zeroblob(sqlite3_stmt*, int, int n);

//用法参考:http://www.sqlite.org/c3ref/bind_blob.html


//紧接着就可以执行语句,当返回值为SQLITE_ROW时表示OK
int result = sqlite3_step( stat );

//当使用step查询的时候,运行一次只有一条数据,需要循环 运行才能遍历
//紧接着就是获取数据,以下面的句子为例
int id = sqlite3_column_int( stat, 0 );
//获取的是int型,为第0个字段

//如果查询完了,还需要接着以类似的字句查询,需要重置stat
result = sqlite3_reset(stat);
///这样, stat 结构又成为 sqlite3_prepare 完成时的状态,你可以重新为它 bind 内容。

使用sqlite3_exec()

int sqlite3_exec(sqlite3*, const char *sql, sqlite3_callback, void *, char **errmsg );
//第一个参数为句柄
//第二个参数为一条sql语句,
//第三个为回调函数,执行完这条语句后会调用该函数
//第四个可以为任意值,最终会传入回调函数里面
//第五个为错误信息
//返回值为SQLITE_OK 的时候表示成功,错误的时候可以打印errmsg参数

添加sqlite3官方的库到QT中

1、把sqlite3.h 和 sqlite3.lib添加到工程目录中
2、把sqlite3.dll添加到指定目录
3、在工程中的.pro文件中添加如下:
LIBS += ......../sqlite3.dll(前面为第二步的路径)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值