原创 嵌入式数据库SQLCE的开发与应用

2009-9-23 13:11 1558 2 2 分类: MCU/ 嵌入式

文章来源:http://www.emtronix.com/article/article2009312.html


     在当前的嵌入式工控产品中,数据库得到了越来越多的应用。通过数据库,可以非常方便地存储和检索数据,极大地提高工作效率。英创公司基于WinCE的ARM9工控主板,提供了两种类型的数据库,供客户的应用程序选择。一种是WinCE自带的数据库,主要面对需要存储的数据量较小,数据结构相对简单的应用,例如系统的动态配置文件,则使用起来非常合适。另一种则是在PC中最流行的SQL数据库,英创ARM9工控主板缺省配置的SQL数据库版本为SQL CE2.0。在表一中,列出了WinCE自带数据库与SQL CE数据库部分功能的对比,用户可以根据自己的需要,选择合适的数据库。关于WinCE自带数据库的操作请参考《EVC高级编程及其应用开发》WinCE基础数据库编程部分。本文主要讲解在eVC开发环境下,以使用ADOCE 3.1为例详细说明开发SQLCE本地数据库的方法。

      表一:WinCE自带数据库与SQLCE数据库功能对照表
 



<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 


WinCE自带数据库


SQLCE数据库


开发方式


使用API函数操作


使用SQL语句操作


数据类型


较少(9)


较多(20)


pcSQL Sever数据同步


不支持


支持


更改表字段


不支持


支持


      在EVC环境下由于没有提供专门的API函数对SQLCE进行操作,需要通过ADOCE(Active Data Object for Windows CE)组件才能实现对SQLCE数据库的操作。为了方便用户使用SQLCE数据库,利用ADOCE组件技术(ADOCE介绍在附录一中),针对数据库操作中常用的功能,包括创打开数据库、建数据表等,英创提供了一个对SQLCE数据库操作的管理类DBManager,应用程序通过调用该类中提供的API函数,就可以很方便的建立与SQLCE的链接、打开数据库,并可以直接利用SQL语句来对数据库进行建立表、为表添加记录以及查询表中的记录等功能。在eVC环境下通过DBManager类访问SQLCE数据库模型如图1所示。


2009731161041765.jpg

图1  EVC通过DBManager访问数据库模型


一、DBManager类及派生类说明

      DBManager类主要提供打开数据库、执行SQL语句等方法。其头文件声明如下:

      //函数功能:打开数据库
      //入口参数:lpszFileName表示要打开的数据库名称,为绝对路径加文件名。
      //出口参数:无
      //返 回 值:TRUE:打开数据库成功;FALSE:打开数据库失败
      bool OpenDatabase(LPCTSTR lpszDBName);

      //函数功能:执行SQL语句
      //入口参数:lpstrSql为要执行SQL语句的字符串。
      //出口参数:无
      //返 回 值:TRUE:执行SQL语句成功;FALSE:执行SQL语句失败
      bool ExecSql(LPCTSTR lpstrSql);   

      如果想灵活使用DBManager类对数据库操作,必须了解SQL语句,常用SQL语句可以参考附录二中的内容。但是,对于嵌入式工程师来说,有很多用户对SQL语句并不了解,这样,对用户使用数据库提高了门槛。在实际应用中,嵌入式主板的主要任务是把采集工业现场的状态并保存到数据库中,如果想查看分析数据,可以通过WebServer把数据库信息传输到Client端。为了方便不了解SQL语句的用户使用数据库,我们在基类DBManager中提供了几个虚函数,并给出在派生类中实现虚函数的例子。这样,使用API函数就可以实现打开数据库、创建表、插入记录等操作。用户可以根据要保存数据结构修改虚函数就可以满足用户操作数据库的要求,下面以一个实际示例说明使用派来类的方法。


[查看全文]


[嵌入式论坛]-帮主你解决你遇到的问题(免注册)


[嵌入式常见问题]


[更多技术文章]


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
2
关闭 站长推荐上一条 /1 下一条