|
檔案: |
sqlite筆記和例子.rar |
大小: |
5KB |
下載: |
下載 |
|
1.============================================
交叉編譯sqlite首先備份configure檔案
cp configure configure.old1).修改configure檔案,主要是出錯了的地方(可以看config.log檔案尋找到第幾行對應刪除即可)./configure --host=arm-linux --disable-tcl --prefix=/usr/local/arm/3.3.2/arm-linux2).
修改Makefile
#BCC = arm-linux-gcc -g -O2
BCC = gcc -g -O2
因為產生的 lemon 可執行檔需要在主機上執行2.============================================
建立資料庫chmod 775 sqlite3
and then run sqlite3 like this
sqlite3 ex2
,if you see the following messages:
SQLite version 3.3.6
Enter ".help" for instructions
sqlite>input some commands to do something,
sqlite> create table tbl(one varchar(10),two smallint);
sqlite> insert into tbl values('hello',10);
sqlite> insert into tbl values('goodbye',20);
sqlite> .quitmore commands , please visit www.sqlite.org for details
then use 'ls ex2' to list files in currect directory,
if you see 'ex2' file,
congratulations,you have successfully making a standalone 'sqlite3'.next step we should compile the example code on www.sqlite.org 's quickstart page3.=============================================運用測試make a 'test.c' file in 'build' directory, content as showed:
#include <stdio.h>
#include "sqlite3.h" /* orignal is <sqlite3.h> */static int callback(void *NotUsed, int argc, char **argv, char **azColName){
int i;
for(i=0; i<argc; i++){
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}int main(int argc, char **argv){
sqlite3 *db;
char *zErrMsg = 0;
int rc;if( argc!=3 ){
fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
exit(1);
}
rc = sqlite3_open(argv[1], &db);
if( rc ){
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
if( rc!=SQLITE_OK ){
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}
sqlite3_close(db);
return 0;
}arm-linux-gcc test.c -L.libs -lsqlite3 -static //arm-linux-gcc test.c -L.libs -lsqlite3 動態explaination: -L.libs show that the lib searching path is '.libs'
'-lsqlite3 -static' show that the lib name is libsqlite3.a,the 'lib' and '.a' is added by linker.
with the above command ,we can compile a standalone application with sql databse supported.
use arm-linux-strip to decrease its size:
arm-linux-strip a.outupload to ARM9 board, make it runable and test it:
[root@fa fa]# a.out ex2 "select * from tbl"
one = hello
two = 10one = goodbye
two = 20
[root@fa fa]#
if you see the above result , ok you make it.
over.
wish the article is usefull for you!4.==============================================sql文法sqlite3 *db=NULL;
char *zErrMsg = 0;開啟:
sqlite3_open() 開啟資料庫
sqlite3_close()關閉資料庫連接
sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );建立並插入:CREATE INSERT
char *sql = "CREATE TABLE SensorData( ID INTEGER PRIMARY KEY, SensorID INTEGER,SiteNum INTEGER,Time VARCHAR(12),SensorParameter REAL);" ;
char *sql1 = "INSERT INTO \"SensorData\" VALUES( NULL , 1 , 1 , '200605011206', 18.9 );" ;
char *sql2 = "INSERT INTO \"SensorData\" VALUES( NULL , 1 , 1 , '200605011306', 16.4 );" ;
可以調用這個函數(sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );)來執行sql語句sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );查詢: SELECT
char **azResult;
sql = "SELECT * FROM SensorData