Microsoft SQL 2000 Windows CE Edition(又称为SQL Server CE)是用于移动设备上的小型关系数据库。SQL Server CE的发展历程从1.0开始,当时.NET的技术框架还不能应用到移动设备上,这个时候大家在开发基于数据库的移动应用时,采用的是Embedded Visual Tools 3.0中的VB或VC++,使用OLE DB for SQL Server CE或ADOCE访问SQL Server CE数据库。随着.NET Compact Framework的推出,SQL Server CE也推出了2.0,2.0加入了更多的新功能,并在很多性能参数都有较大的提高,但更重要的是从此可以在Visual Studio .NET中通过ADO.NET访问SQL Server CE的数据库了。
RDA全称是Remote data access,其主要由三部分组成:SQL Server CE数据库引擎、SQL Server CE客户端代理和SQL Server CE服务器端代理。SQL Server CE数据库引擎负责写入和读取SQL Server CE数据库中的数据;SQL Server CE客户端代理是RDA在移动设备上的主要组件,它实现了RDA的主要功能,我们可以通过程序调用它提供的接口以控制RDA;SQL Server CE服务器端代理位于服务器端,它与SQL Server CE客户端代理通过HTTP协议进行通信,接收并处理SQL Server CE客户端代理的命令。
RDA支持三个主要的方法,他们分别是:
移动服务系统采用Visual Studio .NET开发,如果要开发基于SQL Server CE的应用,只需要在项目中添加System.Data.SqlServerCe的引用,在运行和部署时系统会自动安装两个SQL Server CE的安装包文件,他们是sqlce.dev.wce4.armv4.CAB和sqlce.wce4.armv4.CAB(armv4这一项会根据不同的平台而有所不同)。sqlce.dev.wce4.armv4.CAB包括Isqlw20.exe和两个错误字符串文件Ssceerror20en.dll和Msdaeren.dll,他们将被安装到移动设备的\Program Files\SQLCE 2.0目录;sqlce.wce4.armv4.CAB包括将被安装到\Program Files\SQLCE 2.0目录下的Ssce20.dll、Ssceca20.dll和安装到\windows目录下的Sscemw20.dll。
isqlw20.exe是SQL Server CE的查询分析器程序,是SQL Server CE在移动设备上的主要管理工具。
在开发中使用的SQL Server CE数据库,可以通过三种方式建立:
其中,通过RDA方式建立是最容易的方法,因为我们可以先行在SQL Server 2000中建立数据库,设计表结构,插入必要的数据,然后通过RDA一次性的把SQL Server 2000中的表和数据下载到移动设备上。
首先安装SQL Server 2000,安装完成后,还需要安装SP3a或者最新的SP4补丁。如果希望通过RDA或合并复制与SQL Server 2000进行数据同步,那么还必须下载SQL Server CE的补丁。SQL Server CE的补丁应该与SQL Server 2000的补丁是一致的,如果SQL Server 2000的补丁是SP3a,那么需要下载SQL Server CE的SP3a的补丁。 SQL Server CE安装包、SQL Server CE的SP3a补丁及SQL Server CE的SP4补丁均可在微软的网站下载(http://www.microsoft.com/downloads/)。
下载完成后,首先安装SQL Server CE的安装程序,然后再安装SQL Server CE的补丁程序。
2) 配置RDA
因为RDA使用HTTP协议实现数据通信,所以服务器端首先需要安装并配置好IIS服务。在“开始”-->所有程序-->Microsoft SQL Server CE2.0-->Configure Connectivity Support in IIS启动SQL Server CE连接配置程序。
使用isqlw20.exe查询分析器程序建立一个空的数据库:MobileService.sdf。
建立空数据库也可以使用下面的代码建立:
首先判断\MobileService.sdf文件是否已经存在,如果已经存在,则先删除该文件。在创建数据库时,用的是SqlCeEngine类的CreateDatabase方法,CreateDatabase会根据LocalConnectionString属性表示的连接字符串创建SQL Server CE数据库。在连接字符串中的password和encrypt database 属性是可选项,但是如果使用了encrypt database 属性则必须包含password属性。SqlCeEngine类还有一个很重要的方法是Compact,Compact方法用于回收SQL Server CE数据库中浪费的空间,可用于更改SQL Server CE数据库的排列顺序、加密方式或密码。
\Program Files\Microsoft SQL Server Compact Edition\v3.5中。可以通过开始-->所有程序-->VS2008-->
Visual Studio Remote Tools-->远程文件查看器查看,数据库查询分析器isqlw35.exe文件也在该目录的CN路径下。
另外,如果在服务器端设置时需要用户登录,还需要设置InternetLogin属性和InternetPassword属性;如果通过代理访问服务器,还需要指定相关的代理属性。
Pull方法中的第一个参数是指定的本地表名称,如果该名称的表已经在SQL Server CE数据库中存在,则该方法会出错;第四个参数是设置是否打开数据跟踪选项的,如果设置为不打开跟踪选项,则第二个参数指定的SQL语句可以从多个表中提取数据,否则只能从单个表中提取数据。因为我们只是要下载数据,并不打算采用Push方法上传数据,所以在此我们可以不指定第四个参数。