標籤:sqlite3 database sqlite linux sql
資料庫的基本內容前面都已經說得差不多了,接下看看怎樣在C語言中使用sqlite。
一 介面
sqlite3_open(const char *filename, sqlite3 **ppDb)
開啟資料庫,如果資料庫不存在則建立一個資料庫,並開啟
sqlite3_close(sqlite3*)
關閉資料庫,如果關閉之前還存在沒有執行完的語句,將會返回SQLITE_BUSY
二 執行個體
1 目錄結構
Projects{
main.c// 代碼所在檔案
sqlite{// 官網下載下來的sqlite壓縮包解壓之後的檔案目錄
shell.c// 本檔案在項目中實際上是用不上的,這個檔案是用來產生sqlite命令工具的,具體可以參考:sqlite學習筆記1
sqlite3.c
sqlite3.h
sqlite3ext.h
}
}
2 原始碼
// main.c#include <stdio.h>#include <stdlib.h>#include "sqlite/sqlite3.h"#define DB_NAME "hanfeng.db"int main(){ sqlite3* db = NULL ; char* msg = NULL ; int ret = 0 ; ret = sqlite3_open(DB_NAME, &db); if (ret){ fprintf(stderr, "error open datebase:%s\n.", DB_NAME) ; exit(0) ; } else{ fprintf(stderr, "successfully open datebase.\n") ; } sqlite3_close(db) ; return 0;}
3 編譯運行
運行有兩種方式,基於前面的筆記,我們並沒有配置sqlite的環境,僅僅是下載解壓得到列一個檔案夾sqlite,因此,需要用如下命令:
gcc -o main main.c ./sqlite/sqlite3.c -lpthread -ldl
如果下載配置安裝了sqlite,則需要將上面的標頭檔包含改為:
#include <sqlite3.h>
然後執行命令:
gcc -o main main.c -lsqlite3
命令執行完成之後會產生一個叫main的可執行檔,輸入:
./main
既可以看到結果。
#在編譯時間使用g++會報錯: error: invalid conversion from ‘const void*’ to ‘const char*’
g++貌似對類型轉換要求更為嚴格,不支援這樣的轉換。
路過的大俠,知道怎樣用g++編譯的,請指教......