sqlite3 C接口基础
函数声明如下:
int sqlite3_open(const char *filename, /* Database filename (UTF-8) */sqlite3 **ppDb /* OUT: SQLite db handle */ );int sqlite3_exec(sqlite3*, /* An open database */const char *sql, /* SQL to be evaluated */int (*callback)(void*,int,char**,char**), /* Callback function */void *, /* 1st argument to callback */char **errmsg /* Error msg written here */ );int sqlite3_close(sqlite3*);
简单来说就是:
sqlite3_open() //打开(创建)一个数据库
sqlite3_exec() //执行一条SQL语句
sqlite3_close() //关闭数据库
注意:
程序编译之前需要 sudo apt-get install libsqlite3-dev
程序编译 gcc demo.c -lsqlite3
示例程序:
#include <stdio.h> #include <stdlib.h> #include <sqlite3.h>static int callback(void *data, int argc, char *argv[], char *azColName[]) {int i;fprintf(stderr, "%s: ", (const char *)data);for (i = 0; i < argc; i++) {fprintf(stdout, "%s = %s\n", azColName[i], argv[i]?argv[i]:"NULL");}fprintf(stdout, "\n");return 0; }int main(int argc, char *argv[]) {int ret;sqlite3 *db;char *sql = NULL;char *zErrMsg = NULL;const char *data = "CallBack function called";ret = sqlite3_open("testDB.db", &db);if (ret) {fprintf(stderr, "Can't open database: %s", sqlite3_errmsg(db));exit(0);} else {fprintf(stdout, "Opened database successfully\n");} #if 0sql = "DELETE from COMPANY where ID=2;"\"SELECT * from COMPANY;"; #elsesql = "DELETE from COMPANY where ID=3;"; #endifret = sqlite3_exec(db, sql, callback, (void *)data, &zErrMsg);if (ret != SQLITE_OK) {fprintf(stderr, "SQL error %s\n", zErrMsg);sqlite3_free(zErrMsg);} else {fprintf(stdout, "Operation done successfully\n");}sqlite3_close(db);return 0; }
重要:
1.回调函数作用就是接受、处理数据库查询的数据,其中参数的意义分别为:
1>data 用户自己传入
2>argc 查询到的该条数据一共有几列
3>argv 获取到的该列的数据
4>azColName 列名称
2.sqlite3_exec执行之后如果出错,则需要释放 zErrMsg。
参考资料:
https://www.sqlite.org/index.html(sqlite官方文档)
https://www.runoob.com/sqlite/sqlite-tutorial.html(菜鸟教程sqlite)
https://cloud.tencent.com/developer/doc/1228(腾讯云sqlite开发者手册)
http://www.cnblogs.com/mingforyou/archive/2013/02/19/2917122.html
转载于:https://www.cnblogs.com/rivsidn/p/10818664.html
总结
以上是生活随笔为你收集整理的sqlite3 C接口基础的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: iOS 修改navigationCont
- 下一篇: Django使用中常见的错误