欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

sqlite3 C接口基础

发布时间:2025/4/14 编程问答 54 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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接口基础的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。