SQLITE3.7.14移植

本文详细介绍了如何在ARM9平台上移植并使用SQLite数据库,包括配置、安装、基本操作及常见问题解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

软件环境: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来查看):

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值