0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

玩轉(zhuǎn)SQLite6:使用C語言來讀寫數(shù)據(jù)庫

碼農(nóng)愛學(xué)習(xí) ? 來源:碼農(nóng)愛學(xué)習(xí) ? 作者:碼農(nóng)愛學(xué)習(xí) ? 2022-09-25 08:52 ? 次閱讀

上篇文章介紹了如何使用Pyhton語言來操作SQLite數(shù)據(jù)庫,對于嵌入式開發(fā),更多的是使用C/C++語言進行開發(fā),因此,本篇介紹如何使用C語言來操作SQLite數(shù)據(jù)庫。

1 SQLite C語言API函數(shù)

SQLite的C語言API函數(shù)的官方文檔地址:https://sqlite.com/capi3ref.html#sqlite3_free

pYYBAGMu-DCAMArpAAPoBmna8CA411.png

對于數(shù)據(jù)庫的基礎(chǔ)操控,可以先了解以下幾個最基本的API函數(shù):

1.1 打開數(shù)據(jù)庫 sqlite3_open

該函數(shù)用于打開sqlite3數(shù)據(jù)庫的連接

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

參數(shù)含義:

filename: 數(shù)據(jù)庫文件名

ppDb: 數(shù)據(jù)庫handle ,用結(jié)構(gòu)體sqlite3來表示一個打開的數(shù)據(jù)庫對象

1.2 執(zhí)行sql語句 sqlite3_exec

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 */
);

參數(shù)含義:

sqlite3 *: 數(shù)據(jù)庫句柄

sql: 要執(zhí)行的sql語句

callback: 回調(diào)函數(shù)

void *: 回調(diào)函數(shù)的第一個參數(shù)

errmsg: 錯誤信息,如果沒有問題則為NULL

1.3 回調(diào)函數(shù)

回調(diào)函數(shù)式一個比較復(fù)雜的函數(shù),一般用于sql語句執(zhí)行后的數(shù)據(jù)打印,其原型為:

int callback(
    void *params,
    int column_size,
    char **column_value,
    char **column_name
);

參數(shù)含義:

params: sqlite3_exec傳入的第四個參數(shù)

column_size: 結(jié)果字段的個數(shù)

column_value: 返回記錄的一位字符數(shù)組指針

column_name: 結(jié)果字段的名稱

回調(diào)函數(shù)的通常寫法為:

static int callback(void *data, int argc, char **argv, char **azColName)
{
   int i;
   fprintf(stderr, "%s:n", (const char*)data);
   for(i=0; i;>

運行結(jié)果:

poYBAGMu-KKAeR5kAACnikFa9fE463.png

4 總結(jié)

本篇簡單介紹了如何使用SQLite的C語言API中最基礎(chǔ)的幾個函數(shù),實現(xiàn)對數(shù)據(jù)庫的讀寫,后續(xù)再介紹其它常用的C語言API函數(shù)的用法。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7604

    瀏覽量

    136809
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3799

    瀏覽量

    64388
  • SQlite
    +關(guān)注

    關(guān)注

    0

    文章

    78

    瀏覽量

    15944
收藏 人收藏

    評論

    相關(guān)推薦

    玩轉(zhuǎn)SQLite5:使用Python讀寫數(shù)據(jù)庫

    本篇介紹了如何使用**Python**語言進行SQLite數(shù)據(jù)庫讀寫,在嵌入式式開發(fā)中,更多的是使用**
    的頭像 發(fā)表于 09-25 08:51 ?1853次閱讀
    <b class='flag-5'>玩轉(zhuǎn)</b><b class='flag-5'>SQLite</b>5:使用Python<b class='flag-5'>來</b><b class='flag-5'>讀寫</b><b class='flag-5'>數(shù)據(jù)庫</b>

    如何使用Rust語言操作Chrome瀏覽器的SQLite數(shù)據(jù)庫

    的瀏覽器,它使用SQLite數(shù)據(jù)庫存儲瀏覽器的歷史記錄、書簽、密碼等數(shù)據(jù)。在本教程中,我們將介紹如何使用Rust語言操作Chrome瀏覽器
    的頭像 發(fā)表于 09-19 16:28 ?2476次閱讀

    Wince系統(tǒng)基于數(shù)據(jù)庫Sqlite的應(yīng)用

    覺得有點象,但是事實上它們區(qū)別很大。比如SQLite 支持跨平臺,操作簡單,能夠使用很多語言直接創(chuàng)建數(shù)據(jù)庫,而不象Access一樣需要Office的支持。如果你是個很小型的應(yīng)用,或者你想做嵌入式開發(fā)
    發(fā)表于 07-18 11:31

    LabVIEW訪問SQLite數(shù)據(jù)庫接口研究

    的操作系統(tǒng),同時能夠跟很多程序語言相結(jié)合,比如Tcl、C#、PHP、Java等,同樣比起Mysql、PostgreSQL這兩款開源世界著名的數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。更多介紹可訪問其
    發(fā)表于 02-04 13:38

    Labview基于JKI SMO框架Sqlite輕量數(shù)據(jù)庫讀寫

    本帖最后由 Harry2017 于 2021-1-18 20:30 編輯 Labview讀寫Sqlite數(shù)據(jù)庫,基于JKI SMO框架面向?qū)ο罂蚣芊绞?b class='flag-5'>讀寫
    發(fā)表于 01-10 19:11

    嵌入式數(shù)據(jù)庫sqlite移植及使用的資料分享

    ,掌握 sqlite 數(shù)據(jù)庫軟件移植的步驟,掌握 sqlite 開發(fā)的兩種方式 — 命令模式和 C代碼開發(fā)模式 的使用方法,并編程實現(xiàn)簡單通訊錄查詢實驗。二.實驗內(nèi)容實驗4.1 移植嵌
    發(fā)表于 10-28 09:48

    基于Dragonboard 410c實現(xiàn)sqlite3數(shù)據(jù)庫存儲與管理

    今天給大家介紹如何利用sqlite3數(shù)據(jù)庫為dragonboard 410c開發(fā)進行數(shù)據(jù)存儲和管理,s
    發(fā)表于 02-08 11:53 ?1182次閱讀

    怎么創(chuàng)建SQLite數(shù)據(jù)庫

    大家好,今天給大家分享一篇如何創(chuàng)建SQLite數(shù)據(jù)庫的文章。
    的頭像 發(fā)表于 02-22 16:21 ?6022次閱讀
    怎么創(chuàng)建<b class='flag-5'>SQLite</b><b class='flag-5'>數(shù)據(jù)庫</b>

    SQLite數(shù)據(jù)庫的特點 SQLite數(shù)據(jù)庫簡單介紹

    語言,使得SQLite成為非常流行的數(shù)據(jù)庫管理系統(tǒng)。 SQLite數(shù)據(jù)庫的特點: 1. 輕量級:SQLi
    的頭像 發(fā)表于 08-28 16:40 ?5532次閱讀

    如何創(chuàng)建一個Sqlite數(shù)據(jù)庫

    如何創(chuàng)建一個Sqlite數(shù)據(jù)庫? Sqlite是一種輕量級、占用空間小、操作速度快的嵌入式數(shù)據(jù)庫,使用它可以方便地存儲和管理數(shù)據(jù)。
    的頭像 發(fā)表于 08-28 16:40 ?4463次閱讀

    什么是Sqlite數(shù)據(jù)庫?

    什么是Sqlite數(shù)據(jù)庫?? Sqlite數(shù)據(jù)庫是一種輕量級的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。它被開源軟件組織SQ
    的頭像 發(fā)表于 08-28 16:41 ?2573次閱讀

    SQLite數(shù)據(jù)庫能加密嗎

    SQLite數(shù)據(jù)庫能加密嗎? SQLite是一種以文件為基礎(chǔ)的輕量級數(shù)據(jù)庫管理系統(tǒng),它被廣泛應(yīng)用在許多領(lǐng)域,例如移動設(shè)備應(yīng)用程序、桌面應(yīng)用程序、網(wǎng)絡(luò)瀏覽器、機器人和嵌入式系統(tǒng)等。在許多
    的頭像 發(fā)表于 08-28 16:41 ?3959次閱讀

    SQLite數(shù)據(jù)庫能共享嗎?

    SQLite數(shù)據(jù)庫能共享嗎? SQLite數(shù)據(jù)庫是一種輕量級的數(shù)據(jù)庫管理系統(tǒng),它被廣泛使用于移動應(yīng)用、本地桌面應(yīng)用以及小型Web應(yīng)用中。
    的頭像 發(fā)表于 08-28 16:41 ?2641次閱讀

    SQLite數(shù)據(jù)庫與python的區(qū)別

    SQLite數(shù)據(jù)庫與python的區(qū)別 SQLite是一種輕量級關(guān)系型數(shù)據(jù)庫管理系統(tǒng),是一個嵌入式的數(shù)據(jù)庫引擎。Python是一種高級編程
    的頭像 發(fā)表于 08-28 16:41 ?867次閱讀

    SQLite數(shù)據(jù)庫增刪改查

    SQLite數(shù)據(jù)庫增刪改查? SQLite是一種輕量級的RDBMS(關(guān)系型數(shù)據(jù)庫管理系統(tǒng)),具有速度快、易用性高等優(yōu)點。雖然SQLite
    的頭像 發(fā)表于 08-28 17:09 ?1209次閱讀