移动数据库的产品——Microsoft SQLServer For CE


发布日期 : 2017-03-01 06:01:27 UTC

访问量: 151 次浏览

移动数据库的产品——Microsoft SQLServer For CE

SQLServer For CE(下面简称SQL CE) 是微软公司为掌上设备专门设计的移动数据库, 现在最新的版本为2.0。 它的数据库引擎大约占用1.2~1.6M的磁盘空间。 但是SQLCE已经能够执行大部分的SQL查询处理, 支持大部分SQL语句, 开发者可以像使用SQL Server2000用户接口那样使用SQL CE。 SQL CE为移动计算应用做了很多优化和取舍, 大大加快了SQL语句的执行速度, 提高了在低CPU频率、低内存情况下运行的性能。 而且,SQL CE能够和SQL Server2000很好地配合, 用户只要通过少量的代码就能实现移动数据库到服务器的数据同步。 现在SQL CE能支持的最大数据量已经达到2G。 可以说,SQLCE是移动GIS应用的一个很好的属性数据库选择。

移动数据库的实现的主题特性是要解决离线数据库和 服务器端数据库的同步问题, SQL CE的方式为远程数据访问的技术(RDA)以及合并复制技术 (merge replication),这里主要介绍前者。

所谓远程数据访问即Remote Data Access(简称为RDA), 这项技术在WindowsCE2.11版本时已经存在, 在SQL Server2000 For CE出现之后, 它的功能又更加丰富了。 利用这项技术我们可以利用各种网络环境, 使PocketPC连接到远程的SQL Server2000数据库。 如果用户是第一次连接, 则移动设备会从SQL Server2000上下载需要査询的数据; 如果不是第一次査询, 移动设备则会对比本地的数据库和远程数据库中的内容, 更新远程数据库中的信息。 通过RDA技术可以完成下面四种类型的数据传递。

1.从服务器端下栽数据

当移动设备上的本地数据库无内容时, 可以通过RDA技术从远程SQL Server2000 服务器下载初始化数据到本地SQLServerCE数据库。 例如,应用程序利用RDA技术下载终端用户登录数据和 产品原始数据到本地移动数据库中,从而完成系统初始化。 没有这个最初的初始化步骤,系统将无法登录。 这个步骤将在后面的实例中详细描述。

2.向服务器上传数据

移动设备上的应用程序在初始化后, 能够让操作员登录并使用系统。 在操作员录人和采集的信息(例如GPS或条形码的信息) 都将被保存在移动数据库中,此时, 又可以利用RDA技术将本地数据上传到SQL Server2000服务器端。 值得注意的是,我们在设计服务器端数据库时, 不能在参加同步的表中存在自增量字段, 因为不同的移动设备会对表中同一个字段做自增, 造成上传数据失败。

3.更新服务器端数据

有的时候,同一条记录可能在多个移动设备上的数据库和 服务器端的数据库中都存在。 这个时候服务器端的记录以最后一次同步的移动设备中的记录为准。

4.下达无返回的T-SQL命令操作远程服务器(Submit SQL)

在移动设备上的应用程序能够利用T-SQL的 命令远程操作SQL Server2000数据库。 这项功能非常实用, 我们通常需要在采集数据时记录当前时间, 但是如果存在多个移动设备的时候, 各个移动设备的机器时间是不统一的, 对此种情况的解决方案就是在每次数据同步时利用Submit SQL技术 刷新服务器时间并将这个时间下载设定为移动设备的时间:

Client端体现为移动设备应用程序。 应用程序通过内置的SQL Server CE Client Agent 实现对本地移动数据宓的读写和查询, 同时SQL Server CE Client Agent还实现了和 远程数编疰的同步Server端体现为IIS中间层和 SQLServer数据库。IIS中间层也存在一个SQL Server CE Agent代理程序, 用来处理移动设备端的数据请求。 SQL Server数据库通过SQL ServerOLE DB Provider 底层接口对IIS传送过来的数据加以处理。 在安装系统的时候, 我们可以把IIS和SQL Server 2000装在同一台机器上, 也可以分开安装在不同机器上,中间用防火墙隔开。 移动设备和服务器端主要通过HTTP协议发送T-SQL命令和传递数据。

前基于C/S结构平台的实现硬件的主体主要为PDA, 由于操作系统大部分为美国微软公司的Windows CE, 故相信采用功能强大且开发简单的SQL CE作为 移动GIS的属性数据库的实现平台不失为一个好方法。

相关链接