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

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

    关注

    5082

    文章

    19126

    浏览量

    305224
  • API
    API
    +关注

    关注

    2

    文章

    1501

    浏览量

    62024
  • 数据库
    +关注

    关注

    7

    文章

    3799

    浏览量

    64394
  • ACI
    ACI
    +关注

    关注

    0

    文章

    6

    浏览量

    9961
收藏 人收藏

    评论

    相关推荐

    LDO嵌入式系统的应用 常见LDO故障及解决方法

    LDO嵌入式系统的应用 LDO(Low Dropout Regulator,低降压线性稳压器)是一种常用的电源管理集成威廉希尔官方网站 ,它在嵌入式
    的头像 发表于 12-13 09:08 376次阅读

    嵌入式系统开发与硬件的关系 嵌入式系统开发常见问题解决

    嵌入式系统开发与硬件的关系 嵌入式系统是专为特定应用设计的计算机系统,它们通常嵌入在所控制的设备
    的头像 发表于 12-09 09:38 257次阅读

    HAL库嵌入式系统的应用

    HAL库(Hardware Abstraction Layer Library,硬件抽象层库)嵌入式系统扮演着至关重要的角色。以下是HAL库
    的头像 发表于 12-02 11:32 550次阅读

    mmc卡在嵌入式系统的使用

    随着科技的发展,嵌入式系统我们的日常生活扮演着越来越重要的角色。从智能手机到家用电器,再到工业控制系统
    的头像 发表于 11-25 09:58 233次阅读

    PROM器件嵌入式系统的应用

    PROM(Programmable Read-Only Memory,可编程只读存储器)器件嵌入式系统中有着广泛的应用。以下是对PROM器件嵌入
    的头像 发表于 11-23 11:22 442次阅读

    什么是嵌入式?一文读懂嵌入式主板

    现代科技浪潮嵌入式技术已成为支撑各种智能设备和系统运行的核心力量。那么,究竟什么是嵌入式嵌入式
    的头像 发表于 10-16 10:14 977次阅读

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被称为嵌入式系统的核心组件,是一种用于控制和数据处理的计算机硬件,其设计旨在嵌入特定设备执行专门任务。
    的头像 发表于 09-30 10:05 472次阅读

    嵌入式系统的未来趋势有哪些?

    会更加模块化和集成化,允许更容易的硬件和软件的切换和升级。这会提高系统的可维护性和可扩展性,会使得系统能够适应不断变化的应用需求。 5. 生态可持续性与环保材料
    发表于 09-12 15:42

    嵌入式系统的实时操作系统

    嵌入式RTOS是嵌入式应用程序运行、相互交互和与外界通信的底层软件机制。本节,您将了解嵌入式软件开发人员使用哪些流行RTOS以及它们运行
    的头像 发表于 08-20 11:28 493次阅读

    机器视觉嵌入式的应用

    机器视觉嵌入式系统的应用是一个广泛而深入的话题,涉及到许多不同的领域和技术。 机器视觉嵌入式
    的头像 发表于 07-16 10:30 528次阅读

    嵌入式系统怎么学?

    、C++或者Python。这些语言嵌入式系统开发中都被广泛应用。 3、微处理器/微控制器架构:学习常见的微处理器和微控制器架构,如ARM、AVR、PIC等,了解其特性和应用场景。 4、
    发表于 07-02 10:10

    入门嵌入式系统这些知识你知道吗?

    嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储R
    发表于 05-03 09:54 579次阅读

    嵌入式fpga是什么意思

    嵌入式FPGA是指将FPGA技术集成到嵌入式系统的一种解决方案。嵌入式系统是一种为特定应用而设
    的头像 发表于 03-15 14:29 1260次阅读

    fpga是嵌入式

    FPGA(现场可编程门阵列)不是嵌入式系统,但FPGA嵌入式系统中有着重要的应用。
    的头像 发表于 03-14 17:19 2321次阅读

    嵌入式系统发展前景?

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