实验十六 嵌入式数据库实验

上传人:飞*** 文档编号:44507174 上传时间:2018-06-09 格式:DOC 页数:6 大小:91.50KB
返回 下载 相关 举报
实验十六 嵌入式数据库实验_第1页
第1页 / 共6页
实验十六 嵌入式数据库实验_第2页
第2页 / 共6页
实验十六 嵌入式数据库实验_第3页
第3页 / 共6页
实验十六 嵌入式数据库实验_第4页
第4页 / 共6页
实验十六 嵌入式数据库实验_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《实验十六 嵌入式数据库实验》由会员分享,可在线阅读,更多相关《实验十六 嵌入式数据库实验(6页珍藏版)》请在金锄头文库上搜索。

1、实验十六实验十六 嵌入式数据库移植实验嵌入式数据库移植实验【实验目的】1、了解嵌入式数据在嵌入式设备中应用 2、了解 SQLite 的移植和编译过程 3、掌握嵌入式数据库的编程方法【实验原理】1、SQLite 介绍介绍 SQLite 是 D. Richard Hipp 用 C 语言编写的开源嵌入式数据库引擎。它是完全独立 的,不具有外部依赖性。占用资源非常低,在嵌入式设备中,只需要几百 K 的内存就够了。 它能够支持 Windows/Linux 等主流操作系统,可与 TCL、PHP、Java 等程序语言相结合, 提供 ODBC 接口,其处理速度甚至令开源世界著名的数据库管理系统 Mysql、P

2、ostgreSQL 望尘莫及。 SQLite 对 SQL92 标准的支持包括索引、限制、触发和查看,支持原子的、一致的、 独立和持久(ACID)的事务。在内部,SQLite 由 SQL 编译器、内核、后端以及附件几个组 件组成,如图 16-1 所示。SQLite 通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修 改和扩展 SQLite 的内核变得更加方便。所有 SQL 语句都被编译成易读的、可以在 SQLite 虚拟机中执行的程序集。图 16-1 SQLite 的内部结构 2 2、sqlitesqlite的移植的移植 (1 1)、源代码的下载)、源代码的下载从http:/www.sqli

3、te.org/download.html下载sqlite的源码sqlite-3.3.5.tar.gz,将下载 的代码包解开,将生成sqlite-3.3.5目录。 (2)、对配置文件)、对配置文件configure的修改的修改在交叉编译sqlite时,编译工具文件的编译器采用的是gcc,而不是arm-linux-gcc,如果 直接采用./configure -host=arm-linux命令对系统进行编译配置,configure配置文件在检查 编译器时会错,所以应将configure配置文件中的交叉编译的检查语句注释掉,然后再手动 增加编译工具文件的编译器gcc。 将configure文件中的如

4、下交叉编译器的检查语句注释掉(前面加#字符): # if test “$cross_compiling“ = “yes“; then # echo “$as_me:$LINENO: error: unable to find a compiler for building build tools“ # (exit 1); exit 1; ; # fi - #else # test “$cross_compiling“ = yes # (exit 1); exit 1; ; - #else # test “$cross_compiling“ = yes # (exit 1); exit 1; ;

5、 修改完毕后,在源代码目录下执行编译配置命令 rootlocalhost sqlite-3.3.5$./configure -host=arm-linux -disable-tcl (3) 、修改修改 Makefile 文件文件 将 Makefile 文件中编译工具的编译器修改为 gcc,即将 Makefile 中的 BCC = arm-linux- gcc -g -O2 修改为 BCC = gcc -g -O2。 (4) 、编译和安装、编译和安装 将 Makefile 文件修改后,在源代码目录中执行 make 编译命令,编译后的库文件和可 执行文件保存在当前目录下的隐藏文件夹.libs 中,

6、然后执行 make install 安装命令,共享库 文件 libsqlite3.so.0.8.6 及相关的符号链接文件复制在/usr/local/lib 目录下,头文件 sqlite3.h 复制在/usr/local/include 目录中。 rootlocalhost sqlite-3.3.5$make rootlocalhost sqlite-3.3.5$make install (5) 、编译脚本的编写、编译脚本的编写 为了不修改配置文件 configure 和编译文件 Makefile,可以将编译过程写成脚本的形式 Makefile.sh 或自己重写编译文件 Makefile.mk,

7、下面给出编译脚本 Makefile.sh 和 Makefile.mk 的具体内容(见光盘中实验十六源代码目录下 sqlite-3.3.5-arm.tar.gz 中的内容) 和使用方法。 编译脚本的使用方法编译脚本的使用方法 编译脚本是一个可执行的文件,在源代码所在的目录下利用文本编辑器新建编译脚本 文件 Makefile.sh(内容如下) ,然后利用 chmod 命令将其属性改成可执行文件并运行脚本 即可完成上述编译的全过程。 rootlocalhost sqlite-3.3.5 chmod 755 Makfile.shrootlocalhost sqlite-3.3.5 ./Makfile.

8、sh Makefile.sh 的内容:#!/bin/sh #compile script for sqlite-3.3.5 echo “config.“ export config_BUILD_CC=gcc then make distclean; fi then make distclean; fi & echo “clean done“3、sqlite 使用方法使用方法 (1) 、重要函数的介绍、重要函数的介绍 利用 sqlite 编写数据库程序,首先应利用打开数据库函数 int sqlite3_open( const char *filename, sqlite3 *ppDb )将数据库

9、文件打开,如果该数据库文件不存在,则创建一个空数 据库,并返回对应数据库的句柄参数 ppDb,同时如果打开数据库返回 SQLITE_OK 则表示 成功打开数据库,否则操作失败。 成功打开数据库后,便可利用执行 SQL 语句的函数 int sqlite3_exec( sqlite3*, const char *sql, sqlite3_callback, void *,char *errmsg)对数据库进行建立数据库表、数据库查询、删除 和更新数据库记录等等操作,也可利用获取数据库记录内容的 SQL 执行函数 int sqlite3_get_table(sqlite3*,const char *

10、sql,char *resultp,int *nrow, int*ncolumn, char *errmsg ) 对数据库记录内容进行相应的显示操作。 在对数据库操作完毕后,应利用关闭数据库函数 int sqlite3_close(sqlite3 *)将先前打开 的数据库关闭。有关 SQLite 的其它操作参考 SQLite 相关文档。 (2) 、sqlite 的使用方法的使用方法 利用 Qt 编写基于 ARM 开发板的 SQLite 数据库管理程序,可以先在 PC 机上完成仿真 运行,然后再利用交叉编译工具进行编译,下面以实例具体介绍基于 PC 和 ARM 的两种不 同平台的编译方法。 基于

11、基于 PC 平台的编译步骤:平台的编译步骤: a、 在/usr/local/目录下新建 sqlitelib_pc 目录;将编译好的基于 PC 平台的 sqlite 的库文件及 相关符号链接复制到 sqlitelib_pc 目录下或将光盘提供的 sqlitelib_pc.tar.gz 文件复制到 /usr/local/目录下并解压; rootlocalhost local$tar xzvf sqlitelib_arm.tar.gz b、 将光盘提供的实验十六源代码 database_pc.tar.gz 复制到 linux 操作系统中的某一目录下 并解压,然后利用 qmake 生成 Makefil

12、e 编译文件;rootlocalhost work$tar zxvf database_pc.tar.gz rootlocalhost work$cd database_pc rootlocalhost database_pc$qmake o Makefile dbTest.pro c、 修改 Makefile 文件,增加 sqlite 共享库目录搜索路径和共享库的链接; LIBS = -L/usr/local/sqlitelib_pc -lsqlite3 d、 利用 make 命令编译源代码 rootlocalhost database_pc$make e、 设置 sqlite 运行参数,并

13、在 PC 平台运行数据库测试程序,如图 16-2 所示 rootlocalhost database_pc$export LD_LIBRARY_PATH=/usr/local/sqlitelib_pc:$LD_LIBRARY_PATH rootlocalhost database_pc$./dbTest图 16-2 sqlite 运行界面基于基于 ARM 平台的编译步骤平台的编译步骤 a、 在/usr/local/目录下新建 sqlitelib_arm 目录;将编译好的基于 ARM 平台的 sqlite 的库文 件及相关符号链接复制到 sqlitelib_arm 目录下或将光盘提供的 sqli

14、telib_arm.tar.gz 文件 复制到/usr/local/目录下并解压; b、 将光盘提供的实验十六源代码 database_arm.tar.gz 复制到 linux 操作系统中的某一目录 下并解压,然后利用 tmake 生成 Makefile 编译文件(假设交叉编译环境参数已设置假设交叉编译环境参数已设置) ;root51Board$tar zxvf database_arm.tar.gz root51Board$cd database_arm rootlocalhost database_arm$tmake o Makefile dbTest.pro c、 修改 Makefile

15、 文件,增加 sqlite 共享库和头文件目录搜索路径和共享库的链接; LIBS = -L/usr/local/sqlitelib_arm -lsqlite3 INCPATH= -I/usr/local/include d、 利用 make 命令编译源代码 rootlocalhost database_arm$make e、 ARM 程序的测试运行 将编译好的数据库程序 dbTest 和数据库文件 test.db 下载目标板的/usr/qpe/bin 目录下; 在目标板上利用 chmod 命令修改 dbTest 的属性 rootbin$ chmod 755 dbTest 将基于 ARM 开发平

16、台的 sqlite 共享库下载到目标板的/usr/qpe/lib 目录下; 在开发板的/usr/qpe/app/applications 目录下新建 dbTest.desktop 文件(内容如下); Desktop Entry Comment=A SQLite Test Program Exec=dbTest Icon=Clock Type=Application Name=Clock Namezh_CN=SQLite 测试【实验仪器】1、装有 Linux 操作系统的 PC 机一台; 2、XSBase270 或 XSBase255 ARM 实验开发平台一套【实验内容】1、编译基于 PC 和 ARM 平台的 sqlite 源代码,写出编译过程和注意事项; 2、编译并

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号