日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

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

编程问答

sqlite3 C接口基础

發布時間:2025/4/14 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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接口基础的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。