首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» SQLite嵌入式数据库系统的研究与实现之二
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
SQLite嵌入式数据库系统的研究与实现之二
发短消息
加为好友
pengpengpang
(pengpengpang)
当前离线
UID
1023229
帖子
6106
精华
0
积分
3055
阅读权限
90
来自
中国
在线时间
156 小时
注册时间
2013-12-20
最后登录
2016-7-3
论坛元老
UID
1023229
来自
中国
1
#
打印
字体大小:
t
T
pengpengpang
发表于 2015-8-21 17:51
|
只看该作者
SQLite嵌入式数据库系统的研究与实现之二
数据库系统
,
嵌入式
3 SQLite在ARM9开发板上的编译及拷贝
在SQLite官方网www.sqlite.org下载SQLite-3.3.8版本,在终端解压生成SQLite-3.3.8目录。进入此目录,对sqlite/src/sqliteInt.h作一定的修改,以确保btree(B树)有正确的变量大小。不同体系结构的Linux会有些差别。对于ARM-Linux可找到如下部分:
这样后面的“typedef INTPTR_TYPE ptr;”就定义为“int”类型,而不是“long long”。
修改configure文件的内容,注释掉相关代码,让系统不去检查交叉编译环境,否则会出现错误,不能生成Makefile文件。然后新建一个文件夹sqlite-arm-linux来保存将要生成的库文件,运行以下命令进行配置:
将在本目录下生成Makefile文件。修改Makefile文件中如下语句,指定主机编译器为GCC:
这时就可以运行make & & make install命令开始编译,若无其他错误提示,则会在/../sqlite-3.3.8/sqlite-arm-linux/lib目录下生成库文件。主要有libsqlite3.so、libsqlite3.so.O、libsqlite3.so.O.8.6三个文件。同时在bin文件夹下生成了可执行文件sqlite3。为了减小执行文件大小,用strip命令处理去掉其中的调试信息。
库文件生成后,可以通过NFS(网络文件系统)把相关库文件拷贝到ARM开发板上,设置好主机NFS服务器,启动目标板后,执行:
其中192.168.1.101为NFS服务器IP,这样就把sqlite库文件所在文件夹挂载到了目标板上,拷贝时注意加上-arf选项,因为libsqlite3.so和libsqlite3.so.O是链接到Iibsqlite3.so.O.8.6的。
4 嵌入式数据库系统设计及实现
对嵌入式系统而言,强大的图形用户接口使系统的功能更加丰富。目前有众多的GUI可供使用,考虑到授权和价格的因素,我们在Qt/Embedded基础上进行数据库界面程序的开发,完成嵌入式数据库系统的设计。Qt良好的封装机制使Qt的模块化程度非常高,可重用性较好。嵌入式数据库系统的基本结构如图2所示。
通过Qt的QTable控件来实现数据表单的显示,通过QListView、QC20mBobox以及QTextEdit等控件进行数据表单的选择、数据输入等,配合PushButton控件实现数据表的创建、删除和数据查询、添加、删除、修改等操作。这样,实现数据库系统的基本管理,并可利用串口实现与后台数据库之间的数据交互。本系统利用Qt Designer实现数据库界面的快速开发,并通过调用SQLite的API接口函数实现数据库的基本操作。下面简要介绍一下用QtDesigner开发数据库界面的基本方法及关键代码。新建一个C++项目,在此基础上新建一个窗口部件,在窗口部件上添加一个Table控件作为数据表单的显示界面。另根据需要,添加PushButton控件以实现相应的操作。在窗口类下新建一个槽,命名为SelectSlot()。连接相关按钮信号,关键代码如下:
其中tableView函数的作用是将查询得到的数据表显示在Table控件中。函数体程序如下:
终端下进入工程目录,修改*.pro文件,并添加如下内容:
这里加入了编译程序所需库文件的路径以及sqlite.h头文件的路径。这一切做好后,开始编译。
tmake-o Makefile EDBMS.pro生成Makefile,将其中的编译工具改为arm-linux-g++,加上交叉编译的相关库文件。然后make编译,生成能在ARM开发板上运行的二进制文件,并且通过NFS挂载到开发板上。运行./EDBMS,会出现我们设计的窗口界面。查询一个数据表的内容并显示在QTable控件上,主界面效果如图3所示。
另外,系统运用SQL Servqr。2000作为后台数据库,用VB 6.O开发,通过ODBC与数据库连接,实现后台数据库管理,并负责接收和处理客户端请求。PC机与嵌入设备端则可以通过串口进行通信,以完善系统功能。这样,一个较为完备的嵌入式数据库系统就构建起来了。
结 语
本文在对嵌入式数据库特性研究的基础上,设计出一种嵌入式数据库系统的体系结构。结合嵌入式数据库的特点,运用SQLite在ARM-Linux平台上构建嵌入式数据库系统。在此基础上利用Qt设计了数据库界面,使用SQLite的API实现数据库的基本操作。最后对后台数据库的配置及串口通信机制做了简要介绍,完成了整个嵌入式数据库系统的构建。
收藏
分享
评分
记录学习中的点点滴滴,让每一天过的更加有意义!
回复
引用
订阅
TOP
返回列表
在线座谈交流区
综合技术交流
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议