、開發環境:
mini2440
, linux-2.6.32.2
核心,
ubuntu9.10
, arm-linux-gcc-4.3.2 在
sqlite源代
碼 二、移植步驟 1.
解壓資料庫原始檔並進入解壓後的目錄,如下:
tar -zxvf sqlite-3.6.22.tar.gz
cd sqlite-3.6.22
2.建立乙個目錄
build
並進入該目錄,用於在這個目錄中進行交叉編譯,如下:
mkdir build
cd build
3.在 build
目錄中執行
sqlite-3.6.22
中的 configure
指令碼生成
makefile
檔案,如下:
../configure --host=arm-linux --prefix=/root/sqlite-3.6.22/build/target
選項host
指定的是用
arm交叉編譯器進行編譯 選項
prefix
後面的路徑是到時候編譯安裝後目標存放的目錄,你可以任意設定
4.執行
make
和 make install
命令,如下:
make
如果出現arm-none-linux-gnueabi-gcc: 3.7.6.2": no such file or directory
: warning: missing terminating " character
make: *** [sqlite3.lo] 錯誤 1
則修改makefile中的
-dpackage_string=/"sqlite 3.7.6.2/" 把sqlite和3.7.6.2中間的空格去掉
make install
編譯和安裝完後,在
/root/sqlite-3.6.22/build/target
目錄中會生成三個目標資料夾,分別是:
bin、 include、
lib,然後分別將
bin/usr/bin
目錄中,
lib/usr/lib
目錄中即可。
include
目錄下是
sqlite的 c
語言 api
的標頭檔案,程式設計時會用到。 5.
在開發板上測試移植的
sqlite
資料庫。登入開發板的
linux
,執行:
sqlite3 demo.db
sqlite3
是乙個 sqlite
的命令列訪問程式,
demo.db
是新建的資料庫的名字,必須以
db作字尾。然後會看到下面的畫面,說明移植成功。
三、測試
1 、新建資料庫
[rootmrfeng]#sqlite3 test.db
sqlite version 3.6.18
enter ".help" for instructions
enter sql statements terminated with a ";"
sqlite> create table film (number,name);
sqlite> insert into film values (1,'aaa');
sqlite> insert into film values (2,'bbb');
sqlite> select * from film;
1|aaa
2|bbb
sqlite>.quit
[rootmrfeng]#
藍色部分為輸入。
2 、測試程式
這裡以sqlite
官方站點
的quick start
文件中的測試程式為例對移植到arm
-linux
上的sqlite3
進行測試。該程式清單如下:
//test_sqlite.c
#include
#include
#include
static int callback(void *notused, int argc, char **argv, char **azcolname)
printf("/n");
return 0;
}int main(int argc, char **argv)
rc = sqlite3_open(argv[1], &db);
if( rc )
rc = sqlite3_exec(db, argv[2], callback, 0, &zerrmsg);
if( rc!=sqlite_ok )
sqlite3_close(db);
return 0;}
使用如下命令編譯測試程式:
交叉編譯時採用arm-linux-gcc -i /……
(安裝路徑)/include -l/……(
安裝路徑)/lib -o target src -lsqlite3
arm-linux-gcc -o test_sqlite test_sqlite.c -lsqlite3 -l /opt/friendlyarm/mini2440/sqlite-3.7.3/build/lib/ -i /opt/friendlyarm/mini2440/sqlite-3.7.3/build/include/
3 、在上面新建的資料庫目錄下測試:
[rootmrfeng]#./test_sqlite test.db "select * from film"
number = 1
name = aaa
number = 2
name = bbb
[rootmrfeng]#
1)建立資料庫檔案:
>sqlite3 test.db 回車
就生成了乙個test.db在d盤。
這樣同時也sqlite3掛上了這個test.db
2) 用.help可以看看有什麼命令
>.help 回車即可
3)可以在這裡直接輸入sql語句建立** 用;結束,然後回車就可以看到了
4)看看有建立了多少表
>.tables
5)看表結構
>.schema 表名
6)看看目前掛的資料庫
>.database
7)如果要把查詢輸出到檔案
>.output 檔名
> 查詢語句;
查詢結果就輸出到了檔案c:/query.txt
把查詢結果用螢幕輸出
>.output stdout
8)把錶結構輸出,同時索引也會輸出
.dump 表名
9)退出
>.exit 或者.quit
使用sqlite3 模組操作sqlite3資料庫
python內建了sqlite3模組,可以操作流行的嵌入式資料庫sqlite3。如果看了我前面的使用 pymysql 操作mysql資料庫這篇文章就更簡單了。因為它們都遵循pep 249,所以操作方法幾乎相同。廢話就不多說了,直接看 吧。都差不多,首先匯入模組,然後建立連線,然後獲取游標物件,之後利...
在arm上測試sqlite3
這裡以sqlite官方站點http sqlite.org 的quick start文件中的測試程式為例對移植到arm linux上的sqlite3進行測試。該程式清單如下 1 include 2 include sqlite3.h 3 4 static int 5 callback void not...
在MFC中支援sqlite3
建立mfc工程的步驟我就不贅述了,以下操作均假設你已經建立好了乙個mfc工程 測試環境 windows7 編譯環境 visual studio 2015 新增步驟 2 解壓,將common 資料夾中的cppsqlite3.cpp cppsqlite3.h sqlite3.dll sqlite3.li...