C語言程式呼叫SQLite

2021-06-06 22:55:39 字數 2040 閱讀 6701

寫個c語言程式呼叫sqlite

現在我們來寫個c/c++程式,呼叫 sqlite    的 api 介面函式。

下面是乙個c程式的例子,顯示怎麼使用 sqlite 的 c/c++ 介面. 資料庫的名字由第乙個引數取得且第二個引數或更多的引數是 sql 執行語句. 這個函式呼叫sqlite3_open() 在 22 行開啟資料庫, sqlite3_exec() 在 27 行執行 sql 命令, 並且sqlite3_close() 在 31 行關閉資料庫連線。

**:

//     name: opendbsqlite.c

// this file is used to test c/c++ api for sqlite

// author : zieckey

// 2006/04/11

#include #include int main( void )

else printf("open zieckey.db successfully!\n");

sqlite3_close(db); //關閉資料庫

return 0;

}

編譯:# gcc opendbsqlite.c -o db.out

也許會碰到類似這樣的問題:

/tmp/cctkitnn.o(.text+0x2b): in function `main':

: undefined reference to `sqlite3_open'

/tmp/cctkitnn.o(.text+0x45): in function `main':

: undefined reference to `sqlite3_errmsg'

/tmp/cctkitnn.o(.text+0x67): in function `main':

: undefined reference to `sqlite3_close'

/tmp/cctkitnn.o(.text+0x8f): in function `main':

: undefined reference to `sqlite3_close'

collect2: ld returned 1 exit status

這是個沒有找到庫檔案的問題。

由於用到了使用者自己的庫檔案,所用應該指明所用到的庫,我們可以這樣編譯:

# gcc opendbsqlite.c -o db.out -lsqlite3

我用用 -lsqlite3 選項就可以了(前面我們生成的庫檔案是 libsqlite3.so.0.8.6 等,

去掉前面的lib和後面的版本標誌,就剩下 sqlite3 了所以是 -lsqlite3 )。

如果我們在編譯安裝的時候,選擇了安裝路徑,例如這樣的話:

.......

# ../sqlite/configure --prefix=/usr/local/arm-linux/sqlite-ix86-linux

.......

這樣編譯安裝時,sqlite的庫檔案將會生成在 /usr/local/arm-linux/sqlite-ix86-linux/lib 目錄下

這時編譯還要指定庫檔案路徑,因為系統預設的路徑沒有包含 /usr/local/arm-linux/sqlite-ix86-linux/lib

# gcc opendbsqlite.c -lsqlite3 -l/usr/local/arm-linux/sqlite-ix86-linux/lib

如果還不行的話,可能還需要指定標頭檔案 sqlite3.h 的路徑,如下:

# gcc opendbsqlite.c -lsqlite3 -l/usr/local/arm-linux/sqlite-ix86-linux/lib -i/usr/local/arm-linux/sqlite-ix86-linux/include

這樣編譯應該就可以了 ,執行:

# ./db.out

open zieckey.db successfully!

是不是很有成就感阿 ,呵呵,這個上手還是很快的。

SQLite簡介,C 呼叫SQLite

當我們用到海量資料時一般會用oracle,sql server,db2,sybase,mysql等資料庫來儲存和管理資料.如果只是程式中需要儲存少量資料的話直接整到登錄檔裡,或者儲存到乙個xml檔案中.那如果資料量剛好不多不少,用oracle這樣的資料庫有點小題大作,沒有必要.有個xml儲存的話訪問...

c 呼叫sqlite總結

一 準備工作 如下圖所示 以32bit net4.6為例 有兩個版本 1.sqlite netfx46 binary win32 2015 1.0.110.0.zip解壓後要用sqlite.interop.dll 和system.data.sqlite.dll 2.sqlite netfx46 bi...

R語言 R呼叫C 程式

今天mayuyu學習了如何利用r語言來呼叫c 程式。為什麼要這麼多呢?因為r語言雖然方便,但是計算太慢了,尤其是在迴圈語句方面的使用,r語言簡直是無法忍受,所以在r語言中為了提高速度,必要時候還得改用c 來實現。在r語言中要呼叫c 是通過rcpp這個包來實現的。所以要先安裝rcpp這個包咯!安裝完成...