电脑技术学习

用SQL Server Everywhere保存离线数据

dn001

SQL Server Everywhere (SSEv) 是 SQL Server Mobile 2005 (SSM) 的下一个版本,版本号为 3.1,而 SSM 的版本号是 3.0。从版本号的变化就可以看出,SSM 升级到 SSEv 功能基本不会有什么变化。而名字从 Mobile 变成了 Everywhere,可以看出 SSEv 的变化主要是扩展了平台的适用性,当然也不可能超出微软的范围。

SSM 支持 Windows CE、Pocket PC、Smartphone 和 Tablet PC,而 SSEv 还增加了对 Desktop PC 的支持,再一次把移动数据库推向一个新的高潮。

SSEv 支持桌面电脑又将意味着什么呢?桌面不是已经有了 SQL Server Express (SSE) 和 MS Access 了吗?

相对于 MSDE 来说,SSE 其实已经很不错了,它不但功能增强了(例如对 XML 的支持),部署方面也方便了很多。有关 SSE 跟应用程序一起部署的知识请参考 Embedding SQL Server Express into Custom Applications。将 SSE 用来保存智能客户端的离线数据是个不错的选择。不过 SSE 对于大部分人来说,还是大了点。实现离线数据的缓存,对数据库的功能要求是比较低的。通常缓存的都是一些参考数据,业务数据一般变化太大,不会在客户端缓存。而离线数据跟主数据库之间的数据同步,恰恰是智能客户端最需要的。然而,SSEv 就可以很好地解决上述问题。

其实在 SSM 发布时,移动数据库已经有向桌面电脑延伸的苗头了。SSM 的上一个版本 SQL Server CE 2.0 (SSCE) 只支持 Pocket PC 和 Windows CE,SSM 增加了对 Smartphone 和 Tablet PC 的支持,另外支持在 SQL Server Management Studio (SSMS) 的环境下操作 SSM 的数据库。也就是说,从 SSM 开始就支持在桌面电脑上对 SSM 数据库进行编辑了。

SSEv 的使用跟 SSM 几乎一摸一样(反正我还没有发现有什么不同),数据库文件(*.sdf)的格式也相同。通过使用 System.Data.SqlServerCe 命名空间下面的类,可以实现 Remote Data Access (RDA) 和 Merge Replication,从而简化了智能客户端离线数据的同步。

关于 SSEv 用于智能客户端的数据缓存,可以参考 Steve.Lasker 在美国 Tech.ED 2006 讲的两节课的 ppt 和 demo。
Slides:
DEV351 Developing Local and Mobile Data Solutions with SQL Server Everywhere Edition
DEV343 Offline Data Synchronization and Caching with SQL Server Everywhere Edition
Demos:
Database Viewer
Synchronizing SQL Server Everywhere with Remote Data Access (RDA)
SqlCeResultSet, an updateable, scrollable cursor
(消息来源)

另外,Steve.Lasker 还有一堂 Web Cast 跟他在 TechED 上的 DEV343 那节课内容几乎一样,大家有兴趣的可以去听听,不过是英文的,呵呵...
Smart Client: Offline Data Synchronization and Caching for Smart Clients
(消息来源)

最近在关注 SSEv,以后有时间会陆续报道它的消息。对 SSEv 感兴趣的朋友,可以到 Steve.Lasker 的 blog 逛逛,有很多示例代码和视频下载。另外 SSEv 开发团队的 blog 也关注一下吧。

这里还有 SSEv 的 FAQ:
Information about SQL Server Everywhere Edition (SSEv)

最后是 CTP 版的下载地址,目前只支持桌面电脑,不支持移动设备。
Microsoft SQL Server 2005 Everywhere Edition CTP
SQL Server 2005 Everywhere Edition Community Technology Preview Books Online