(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 Linux下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);