SQLITE3.7.14移植

軟件環境:WindowXP Red Hat 5.0

硬件環境:ARM9

移植源碼:http://www.sqlite.org/sqlite-autoconf-3071400.tar.gz

--------------------------------------------------------------------------------------------------------

移植:

#tar –zxvf sqlite-autoconf-3071400.tar.gz

#mkdir /opt/ruanjian/ sqlite-3.7.14

#CC=arm-linux-gcc ./configure –prefix=/opt/ruanjian/sqlite-3.7.14 --host=arm-linux --disable-tcl

#make && make install

完成後將“/opt/ruanjian/sqlite-3.7.14/lib”下的“libsqlite3.so、libsqlite3.so.0、libsqlite3.so.0.8.6”下三個文件拷貝到ARM9中根目錄下lib中同時將編譯時產生的sqlite3(/opt/ruanjian/sqlite-3.7.14/bin目錄下)拷貝到ARM9中根目錄下的bin中這個文件可以作爲一個命令使用它可以創建數據庫、創建表、插入數據等操作詳見請使用“sqlite3”—>“.help”。

使用時如遇以下問題按文檔所示操作即可解決。

如上圖所示紅框問題,即輸入字符後使用退格鍵進行清除時不能進行清除操作。

解決辦法是結束sqlite程序(移植時sqlite自動生成一個可執行文件)然後在超級終端輸入“stty erase ^H”即可。

--------------------------------------------------------------------------------------------------------

sqlite3 SQL語句相關操作

(1)table的創建、修改、刪除

             創建表:“create table test(ID int);”

               

                修改表:“alter table test add column NAME varchar(10);”

            

                刪除表:“drop table test;”

            

(2)表的導入導出

             導出*.txt、*.csv文件 

               

                

               

注:如果是導出爲csv文件則sqlite3數據庫的段要設置爲用逗號分開這樣才能出現如圖1所示的正確結果。不然則出現圖2所示不正確結果,圖2所用的是“|”的顯示方式。

            

                導入到表

              這裏導入csv文件要正確導入sqlite3數據庫的段要設置爲用逗號分開纔行。

              

            

--------------------------------------------------------------------------------------------------------

C語言下的一個簡單實例:

下面編寫是一個對sqlite3的最常用函數的基本操,包括數據庫的建立,在數據庫中建立表並插入信息以及最後關閉數據。下面這個程序名字是“sqlite”。

#include <stdio.h>

#include"/opt/ruanjian/sqlite-3.7.14/include/sqlite3.h"

int main(int argc, char *argv[])

{

      printf("Hello, world\n");

      sqlite3 *db;

      char *sql1 = "CREATE TABLE SensorData(ID INTEGER PRIMARY KEY,SensorID INTEGER,SiteNum INTERER,Time VARCHAR(12),SensorParameter REAL);";

      char *sql2 = "INSERT INTO 'SensorData' VALUES(NULL,101,261,'20100314',18.9);";

      /*如果不存在數據庫則建立數據庫並打開,存在則打開*/

      sqlite3_open("test.db",&db);

      printf("open the test.db\n");

      /*執行SQL語句這裏是建表*/

      if(SQLITE_OK != sqlite3_exec(db,sql1,NULL,NULL,NULL))

      {

             printf("create the table failed!\n");

             exit(1);

      }

      printf("create a table success\n");

      /*執行SQL語句這裏是插入信息*/

      if(SQLITE_OK != sqlite3_exec(db,sql2,NULL,NULL,NULL))

      {

             printf("insert the table failed!\n");

             exit(1);

      }

printf("insert message success\n");

      /*關閉數據庫*/

      sqlite3_close(db);

      printf("close the test.db\n");

      return 0;

}

注:編譯命令arm-linux-gcc sqlite.c -o sqlite -lsqlite3 -L/opt/ruanjian/sqlite-3.7.14/lib

測試:

啓動應用程序:

執行過程中輸出信息:

執行結果(這裏用sqlite3來查看):

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章