0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

探究SQLite在嵌入式系统Wince中的应用

电子工程师 来源:微型机与应用蒋晶,郝继 作者:微型机与应用蒋晶 2021-03-31 10:39 次阅读

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

1 SQLite数据库的介绍与选择

1.1 SQLite数据库结构

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

1.2 SQlite数据库的特点

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

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

(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,把生成的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对数据库进行连接,通过软件建数据库,首先要有数据源,如:

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智能设备时,主要针对DataGridTableStyle属性进行设置。根据应用于Windows mobile的原理对基于Wince的ARM9的嵌入式设备中建数据库还是行不通。对其列的属性进行操作设置仍然改变不了列的宽度,所以这种路径行不通。试了很多种方法,最后通过软件编程进行设置,得到了图3的结果。比较DataGridTableStyl进行设置与软件设置发现,问题在于表的MappingName与列的MappingName设置时,必须对应才能实现修改功能。

用DataGridTableStyle设置,如果列的MappingName与数据库中的建表的列不对应,则映射不存在,从而找不到网格去显示数据,更无法对数据的列宽进行操作。所以通过软件编程,可以对建在缓存区域中的每一张表中所有的列进行操作,解决文本过长不能完全显示的问题。

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

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4981

    文章

    18281

    浏览量

    288402
  • API
    API
    +关注

    关注

    2

    文章

    1382

    浏览量

    60990
  • 数据库
    +关注

    关注

    7

    文章

    3591

    浏览量

    63368
  • ACI
    ACI
    +关注

    关注

    0

    文章

    6

    浏览量

    9908
收藏 人收藏

    评论

    相关推荐

    嵌入式热门发展方向有哪些?

    已经体现了嵌入式系统的优势;信息家电领域,冰箱、空调等的网络化、智能化将引领人们的生活步入一个崭新的空间,即使你不在家里,也可以通过电话线、网络进行远程控制,在这些设备
    发表于 04-11 14:17

    嵌入式会越来越卷吗?

    嵌入式会越来越卷吗? 当谈及嵌入式系统时,我们探究的不仅是一种科技,更是一个日益多元与普及的趋势。嵌入式
    发表于 03-18 16:41

    嵌入式系统发展前景?

    、舒适的生活体验。 工业自动化和智能制造是嵌入式系统的重要应用领域。未来,随着工业4.0的推进,嵌入式系统将更为广泛地应用于生产设备、机器人、自动化流水线等,从而提高生产效率和质量。
    发表于 02-22 14:09

    嵌入式学习步骤

    硬件组件。 (4).开发固件:编写嵌入式系统的固件,这是嵌入式系统的软件部分。固件负责控制硬件并执行特定任务。 (5).调试和测试:
    发表于 02-02 15:24

    嵌入式自学好书推荐

    嵌入式自学好书推荐 在数字时代的浪潮嵌入式系统一直是数字电子产品的重要组成部分。无论是家用电器、工业控制、汽车电子、医疗保健、军事应用
    发表于 01-11 15:13

    为什么嵌入式没有35岁危机?

    嵌入式技术是指将计算机系统嵌入到其他设备或系统的一种技术。它广泛应用于汽车、家电、医疗设备等领域,并且
    发表于 11-17 10:33

    「飞凌嵌入式OK3568开发板试用 」sqlite性能测试

    SQLite简介 SQLite是一个轻量级的关系型数据库管理系统,它是自包含的,即数据库和所有必需的库文件都包含在一个单独的可执行文件SQLit
    发表于 11-08 12:26

    什么是嵌入式Linux?

    发展需要不断进化。随着芯片性能的增强和社会变革的需要,嵌入式系统越来越承接更多、更复杂的功能,所以嵌入式开发也以高薪稳定的状态稳坐在就业的顶端。(相较于其他行业,嵌入式工程师的工资
    发表于 10-11 13:47

    从事嵌入式工作有哪些优势?

    。 那么从事嵌入式工作有哪些优势? 一是工作强度相对较低。开发企业应用软件的IT企业,这个用户的系统搞完了,又得去搞下一个用户的,而且每个用户的需求和完成时间都不同,开发人员往往疲于奔命,重复劳动
    发表于 10-08 15:05

    STM32嵌入式操作系统介绍

    的分配、任务调度,控制、协调并发活动。• 目前嵌入式领域广泛使用的操作系统有:嵌入式实时操作系统FreeRTOS、µC/OS-II、RTh
    发表于 09-28 06:59

    嵌入式操作系统IJLC/OS一Ⅱ通信电源监控应用

    的查询分析和统计等功能也必不可少。通信电源设备运行参数多,实时效果强,设备当中选择功能强大的控制芯片.应用嵌入式操作系统.使其尽可能地发挥出强大的软件控制功能,满足用户对通信电源控制的各种要求。与传统
    发表于 09-20 06:46

    STM32嵌入式操作系统介绍

    的分配、任务调度,控制、协调并发活动。• 目前嵌入式领域广泛使用的操作系统有:嵌入式实时操作系统FreeRTOS、µC/OS-II、RTh
    发表于 09-11 07:24

    创建SQlite的方法

    创建SQlite的方法 SQLite是一种轻量级的嵌入式关系型数据库,它可以适用于各种不同的平台和操作系统SQLite的使用非常广泛,特别
    的头像 发表于 08-28 17:15 3094次阅读

    SQLite数据库的特点 SQLite数据库简单介绍

    SQLite数据库的特点 SQLite数据库简单介绍 SQLite数据库是一种轻型的嵌入式数据库,其最主要的特点在于其开源、免费和可嵌入的特
    的头像 发表于 08-28 16:40 3670次阅读

    【FireBeetle 2 ESP32-S3开发板体验】Arduino中使用基于SPIFFS分区的sqlite3嵌入式数据库

    ,这里的嵌入式,有两重意义。 其一,sqlite可以很轻松的,嵌入到其他程序中提供SQL数据库功能,而无需独立的数据库服务端。 其二,sqlite占用资源非常低,使用c编写,
    发表于 08-03 10:17