新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > RFID安检系统的嵌入式Linux解决方案

RFID安检系统的嵌入式Linux解决方案

作者:时间:2011-05-09来源:网络收藏

  3.1 sqlite3数据库的移植

  sqlite3数据库的移植过程如下所述:
  (1)首先从sqlite官网上下载最新的sqlite3源码包;

  (2)解压源码包,并进入解压目录:
  tar -zxvf sqlite-3.6.23.1.tar.gz
  cd sqlite-3.6.23.1

  (3)配置Configure脚本,使用相关选项生成编译文件Makefile文件:
  ./configure–-enable-share –-prefix=./sqlite-3.6.23.1/result –-host=arm-linux
  选项 -enable-share指定使用的共享库
  选项 -prefix指定了安装目录为./sqlite-3.6.23.1/result
  选项 -host指定了编译环境为目标机为arm的交叉编译环境

  (4)交叉编译,生成终端下数据库的管理程序和库文件, 最终在result目录下得到数据库管理程序sqlite3(相当于Windows下Access程序),提供编程所需的API的动态库libsqlite3.so.0.8.6,编程所需的头文件sqlite3ext.h sqlite3.h。交叉编译的命令如下:
  Make
  Make install

  (5)将数据库管理程序sqlite3、提供编程所需的API的动态库libsqlite3.so.0.8.6及其1个软链接拷贝到开发板根文件相应位置,分别在终端的/usr/bin和/usr/lib这两个目录下,命令如下:
  Cp result/bin/sqlite3 /arm-linux/usr/bin
  Cp –l result/lib/libsqlite3.so* /arm-linux/usr/lib

  (6)为了能在开发机上编译,调用了sqlite3数据库的API的应用程序,需要将动态库libsqlite3.so.0.8.6及其2个软链接、2个头文件拷贝到交叉编译工具链所在目录的适当位置,至此sqlite3数据库的移植和开发环境的配置已完成。只要输入SQL语言便可以进行相关操作。

  3.2 下sqlite3的C语言开发

  sqlite3里最常用到的是sqlite3 *类型。从数据库打开时开始,sqlite3就要为这个类型准备好内存,直到数据库关闭,整个过程都需要用到这个类型。数据库打开时起,这个类型的变量就代表了所要操作的数据库。
  (1)打开数据库API接口函数
  int sqlite3_open(文件名, sqlite3 *);
  用这个函数开始数据库操作。需要传入两个参数,其中之一是数据库文件名,例如:/home/test.db文件名不需要一定存在,如果此文件不存在,sqlite3会自动建立;如果存在,就尝试把它当数据库文件打开。
  sqlite3 * 参数即前面提到的关键数据结构。函数返回值表示操作是否正确,如果是SQLITE_OK则表示操作正常。相关的返回值sqlite3定义了一些宏,具体这些宏的含义可以参考sqlite3.h文件。

  (2)关闭数据库API接口函数
  int sqlite3_close(sqlite3 *);
  如果前面用sqlite3_open开启了一个数据库,结尾时不要忘了用这个函数关闭数据库。

  (3)执行SQL语句API接口
  由于sqlite3数据库支持SQL语言,因而调用C中相关执行函数就如同在终端下操作数据库一样方面快捷,下面是具体的API函数:
  这就是执行一条sql语句的函数。
  Int sqlite3_exec(sqlite3 * db, const char *sql,sqlite3_callback,Void * ,char ** errmsg);
  参数1是调用打开数据库函数sqlite3_open()打开的数据库对象。
  参数2 是一条待执行的SQL语句,其语法格式同标准SQL语言规范一样,如创建 table时插入的记录如下:
  create table student(id varchar(10) primary key, age smallint);
  此语句创建了名为student的表,表中定义了id(学号)和年纪两个变量,其中id是主键。
  Insert into student values(12345678,21);
  此语句向student表中插入一组数据(12345678,21),其中学号为12345678,学生年龄为21。
  对于数据库的其他操作,如数据库更新、修改、查找等用法同上。
  参数3 sqlite3_callback是自定义的回调函数,对执行结果的每一行都执行一次这个函数。
  参数4 void *是调用者所提供的指针,你可以传递任何一个指针参数到这里,这个参数最终会传到回调函数里,如果不需要传递指针给回调函数,可以填NULL。
  参数5 char ** errmsg是错误信息。sqlite3里面有很多固定的错误信息。执行sqlite3_exec之后,如果执行失败则可以查阅这个指针,即可知道执行过程中错误发生的位置。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭