电子产业一站式赋能平台

PCB联盟网

搜索
查看: 2261|回复: 0
收起左侧

志盟嵌入式培训一年_潍坊嵌入式培训机构_SQLite在嵌入式Wince中的应用

[复制链接]

2607

主题

2607

帖子

7472

积分

高级会员

Rank: 5Rank: 5

积分
7472
发表于 2020-8-13 11:27:15 | 显示全部楼层 |阅读模式
志盟嵌入式培训一年_潍坊嵌入式培训机构_SQLite在嵌入式Wince中的应用,   



随着科学技术的发展,嵌入式系统成为了科技发展的主要领域, Linus和Wince是比较常见的嵌入式系统。嵌入式开发过程离不开数据库的应用,对于嵌入式数据库的选择是必要的。通常,嵌入式系统选择的数据应该尽量小,SQLite[1]在Linux中的应用很广泛,本设计介绍了SQLite作为一款小巧的嵌入式数据库在Wince[2]中的应用实例。

1 SQLite数据库的介绍与选择

1.1 SQLite数据库结构

SQLite数据库结构图如图1所示。


1.2 SQlite数据库的特点嵌入式有必要学汇编, 武汉嵌入式培训价格, 嵌入式软件考研科目, 享的美嵌入式音响, 深圳嵌入式硬件, 嵌入式rj45驱动, 辽大嵌入式教授, 嵌入式处理器功能, 激光投影机嵌入式, 中国移动嵌入式风险, 嵌入式开发事例, 嵌入式get, 嵌入式g代码编译, 嵌入式网络的发展, 嵌入式学习重点, 正点原子嵌入式系统, 高级嵌入式软件架构, 嵌入式系统软件属于, 银行嵌入式窗口, 四年嵌入式工程师, 嵌入式程序运行时间, 网页设计嵌入式, PS4嵌入式游戏, 微电子嵌入式工程师, 大连嵌入式公司排名, 嵌入式指令mls, 嵌入式系统设计方法, 可定制嵌入式处理器, 嵌入式驱动加载步骤, 单片机嵌入式自学, 嵌入式平滑轮, 嵌入式web开发, 音频嵌入式系统, 嵌入式编辑器有哪些, 通信专业毕设嵌入式, 嵌入式函数和, 牙齿嵌入式好不好, 嵌入式背景怎么设置, 嵌入式程序代码手册, 嵌入式好找工作吗, 嵌入式待遇高的公司, 无锡嵌入式工资, 嵌入式软件的稳定性,

SQLite是一个开源的嵌入式关系数据库,结构紧凑,可靠性强[3]。有以下特点:

(1)使用非常简单。只需要掌握3个核心API函数,大多数的SQL[4]语句都可以使用。

(2)占用很少的存储器空间。SQLite完全独立,数据库引擎和应用程序在同一系统进程中,因此运行速度较高。

(3)支持ACID事务,在系统出现问题或电源断电时不会出现数据丢失现象。

(4)支持多种语言,像C/C++/C#等。

(5)支持多个嵌入式操作系统平台,如Linux系统、Wince系统等。

2 SQlite的选择

首先,SQL Server CE是Wince自身的数据库,必须在Wince系统中安装3个文件才能使用,而SQLite只需要在电脑上安装SQlite-1.0.65.0[5],把生成的SQlite.Interop.065.DLL移植到Wince系统运行的程序中,并在Visual Studio2008写程序时添加一个引用即可,操作较简单。其次SQLite占用很少的存储器空间(150 KB~250 KB),但是SQL Server CE却要占用 1 MB~3 MB的空间。最重要的是SQLite具有良好的移植性,可以应用到多个嵌入式系统,而SQL Server CE只能在Wince中运行。

3 SQLite的应用硬件及软件平台

本文探讨中以S3C2440作为处理器ARM9的硬件平台,以Wince6.0为应用系统,支持.NET2.0平台。在Visual Studio 2008软件平台中用 C#中编写程序,但是在新建项目中选择智能设备时要选择.NET2.0平台。在Visual Studio 2008中用C#编写程序时,第一次使用时要添加引用System.Data.SQLite,在程序中添加using指令集,这样可以通过软件编写程序实现建库建表的功能。

4 SQLite在Wince中的应用实例

4.1 Wince中显示数据的控件DataGrid及其属性

DataGrid控件实际上是一个固定的列集合,每一列的行数都是不确定的,可以看作一个用来显示数据的网格。它的网格是看不见的,只有建立了数据表,才能看到其中每一行和每一列的具体内容,如果一个单元格的文本太长,就不能在单元格中全部显示。但是在Wince系统中显示数据的控件只有这一个,所以不能完全显示数据这一问题正是本设计所要解决的。图2显示了DataGrid在Wince中的属性。


4.2 SQLite建数据库的步骤

SQLite建数据库的步骤如下:

(1)通过SQLiteConnection对数据库进行连接[6],通过软件建数据库,首先要有数据源,如:

SQLiteConnection conn=new SQLiteConnection(“Data Source=\Program Files\ maindata.db“);

对数据库要进行操作需要执行的命令,如SQLiteCommand cmd=new SQLiteCommand();

(2)每次使用数据库前需要打开数据库,还需要连接数据库,关闭数据库;

(3)通过 CREATE TABLE SQL语句进行建表。必须给表注上表名,方便下面操作。如:
{cmd.CommandText=“CREATETABLE ServerLert(Numintrger,BedNum varchar(20),ServerItem varchar(50),ServerTime varchar(30),Passwords varchar(30));“

(4)可以通过INSERT INTO语句进行插入数据。如:
cmd.CommandText=“INSERT INTO ServerLert(Num,BedNum,ServerItem,ServerTime) VALUES(1 ,′2′,′测血糖′,′10-12-10 15:50:00′)“;

(5)数据库至此建成,由于插入的时间单元格不能完全显示,因此需要通过对图2中标注有灰色背景的TableStyles进行设置[7]。如:
DataGridTableStyle dgts=new DataGridTableStyle();
dgts.MappingName=ds.Tables[0].TableName;
DataGridTextBoxColumn dgtbc=new DataGridTextBoxColumn();
dgtbc.HeaderText=ds.Tables[0].Columns[0].ColumnName;
dgtbc.MappingName=ds.Tables[0].Columns[0].ColumnName;
dgtbc.Width=70;
dgts.GridColumnStyles.Add(dgtbc);

上面是对表中第一列进行的宽度设置主要是对DataGridTableStyle中列的格式进行设置,这就解决了显示文本过长的问题。第二列设置80,第三列设置了170,在Wince中运行的结果。如图3所示。


4.3 Wince通过DataGrid属性建数据库的分析

DataGrid在应用于基于Wince的Windows mobile[7]智能设备时,主要针对DataGridTableStyle属性进行设置[8]。根据应用于Windows mobile的原理对基于Wince的ARM9的嵌入式设备中建数据库还是行不通。对其列的属性进行操作设置仍然改变不了列的宽度,所以这种路径行不通。试了很多种方法,最后通过软件编程进行设置,得到了图3的结果。比较DataGridTableStyl进行设置与软件设置发现,问题在于表的MappingName与列的MappingName设置时,必须对应才能实现修改功能。用DataGridTableStyle设置,如果列的MappingName与数据库中的建表的列不对应,则映射不存在,从而找不到网格去显示数据,更无法对数据的列宽进行操作。所以通过软件编程,可以对建在缓存区域中的每一张表中所有的列进行操作,解决文本过长不能完全显示的问题。

通过上面的介绍可以看出,SQLite作为开源的嵌入式数据库应用在Wince中的一个优点就是建表比较简单,不像SQL CE数据库[9],在Wince运行中需要先创建表,把所建的数据库放在Wince的系统中,添加数据源时再去绑定这个数据源。对于在.net2.0平台建立的数据库[10],添加数据源时无法找到路径,所以这种方法不可行。通过SQLite软件创建数据库的方法则可以改善上述不足。SQLite作为一款小巧的嵌入式数据库,发展前景很大,在基于ARM的Wince操作系统有着广泛应用[11]。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条


联系客服 关注微信 下载APP 返回顶部 返回列表