arm板上sqlite3移植及使用

前端之家收集整理的这篇文章主要介绍了arm板上sqlite3移植及使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

arm板上sqlite3移植及使用

硬件平台:IMX6Q

内核版本:kernel3.0.35


移植到arm板

步骤:
1 下载源码 sqlite-3.6.16.tar.gz
2 编译源码,执行以下指令
cp sqlite-3.6.16.tar.gz /home/liuhaobi/sqlite3
tar -zxvfsqlite-3.6.16.tar.gz
cd /home/liuhaobi/sqlite3/sqlite-3.6.16
./configure --host=arm-linux --prefix=/home/liuhaobi/sqlite3
make
make install
执行完以上指令后,在/home/liuhaobi/sqlite3目录下会生成bin、include、lib文件
为了防止拷贝软链接文件的时候出错,将lib文件打包,执行
cd /home/liuhaobi/sqlite3
tar -zcvf lib.tar.gz lib/
3 将可执行文件和库文件拷贝到arm板中
将bin文件中的可执行文件sqlite3和lib.tar.gz拷贝到sd卡中,将sd卡插入到开发板上,执行以下指令
cp /sddisk/sqlite3 /bin
cp /sddisk/lib.tar.gz /opt
cd /opt
tar -zxvf lib.tar.gz
cp lib/* /lib -rf
4 测试移植效果
执行sqlite3,能进入sqlite命令行,即完成了移植


使用C语言操作sqlite数据库

1 新建数据库test.db
sqlite3 *db = NULL;
sqlite3_open("test.db",&db);
2 关闭数据库test.db
sqlite3_close(db);
3 数据库报错信息输出
sqlite3_errmsg(db);
4 新建数据库
char *zErrMsg;
char *sql = " CREATE TABLE my_table (ID INTEGER PRIMARY KEY,SersorID INTE GER,SiteNum INTEGER,Time VARCHAR(12),SensorParameter REAL);";
sqlite3_exec(db,sql,&zErrMsg);
5 插入数据
sql = "INSERT INTO \"my_table\" VALUES(NULL,1,'20061685',18.9)";
sqlite3_exec(db,&zErrMsg);
6 查询数据
int nrow = 0,ncolumn = 0;
char **azResult; //二维数组用于存放结果
char *sql = "SELECT * FROM my_table";
sqlite3_get_table(db,&azResult,&nrow,&ncolumn,&zErrMsg);
sqlite3_free_table(azResult); //将缓冲区数据清除
7 删除数据
char *sql = "DELETE FROM my_table WHERE SersorID = 1;";
sqlite3_exec(db,&zErrMsg);
8 更新数据
char *sql = "UPDATE my_table set SersorID = 5;";
sqlite3_exec(db,&zErrMsg);

具体实例可参考 sqlite3_test.tar
执行顺序opendbsqlite->insert->query->delete->update

注意:编译的时候要加上库路径和头文件路径,不然会报错
arm-linux-gcc insert.c -o insert_arm -lsqlite3 -I/home/liuhaobi/sqlite3/include -L/home/liuhaobi/sqlite3/lib

./configure CC=mipsel-linux-gcc --build=mipsel-linux --host=i386-linux --prefix=/home/sqlite-3.6.16/lixing

猜你在找的Sqlite相关文章