SQL Server CE 开发前准备

摘要:
典型的需求是FieldService。简单的说,SQLCE就是运行在PocketPC以及其他WindowsCE平台上的一个很简化的SQLServer2000/7.0。除了运行在Device上的部分以外,SQLCE还带了一套开发包,以及SQLCEServerTool用来连接服务器上的SQLServer2000/7.0:开发时,可以用VS.NET或者eVB/eVC来开发。用户在PocketPC上做的操作都先发生在SQLCE上,然后再时不时地和SQLServer2000/7.0同步。当然,也可以用RDA的方式,直接让数据操作发生在SQLServer2000/7.0上。有兴趣的可以在http://www.microsoft.com/sql/ce/downloads/ce20.asp下载SQLServerCE2.0的安装文件,大概40多兆。安装好了以后要配置IIS和SQLServer2000之间的连接。
作者:ericzhen来源:joycode.com

SQL Server CE 2.0的全名是SQL Server 2000 Windows CE Edition version 2.0。2002年秋天就有了,那时候也正好是.NET Compact Framework刚刚出来的时候。那时候就想研究研究,但因为实际需求太少、没有人问问题、没人有做项目,所以就一直扔着。

不过随着Pocket PC/Windows Mobile越来越被人熟悉,一些实际需求也就带动出来了。典型的需求是Field Service。现在很多Field Service仍然是依赖纸张,做不到全部电子化。

例子1:公司派人去仓库验货、点货,可以把清单同步到Pocket PC上,然后在仓库里面直接在PPC上面update,回到公司一同步就可以了。否则按照原先做法,需要先打印一张清单,回来以后再录入一遍。

例子2:联想派人上门来修电脑,以前总是带着一张打印出来的派工单,维修晚了以后维修的人填写维修记录,然后让客户签字。这样做,一则是纸质派工单的档案管理很麻烦,二则维修记录等停留在纸上,如果想用作知识管理、Business Intelligence等更多分析用途,还需要再找人输入。如果能把派工单同步到Pocket PC里面,在现场直接填写记录以及让客户签字,回来一下子同步到服务器上,就方便多了。

所以,前两天下定决心把SQL CE摸了一下,写了一些心得。如果没有摸过SQL CE但也想了解一下,看我这些心得应该可以解决大部分常见的对于SQL CE的问题。

1. SQL CE的架构


首先要回答的问题是“SQL CE是什么”。简单的说,SQL CE就是运行在Pocket PC以及其他Windows CE平台上的一个很简化的SQL Server 2000/7.0。之所以说是“简化”的,因为它支持的功能少、数据类型比较少、周边工具也少。除了运行在Device上的部分以外,SQL CE还带了一套开发包(就是Sqlce Data Provider),以及SQL CE Server Tool用来连接服务器上的SQL Server 2000/7.0:

SQL Server CE 开发前准备第1张

开发时,可以用VS.NET或者eVB/eVC来开发。如果用eVB/eVC开发,就用ADOCE 3.1;如果用.NET开发,就用.NET Compact Framework以及SQL Server CE Data Provider,用法基本上和原先的ADO.NET没啥太大的区别:

SQL Server CE 开发前准备第2张

运行时,SQL CE的感觉就好像是SQL Server2000/7.0的一个副本,SQL CE应用程序本身在Pocket PC上会占用1-3MB空间,另外数据回存放在后缀名为.sdf的文件中(和SQL2K中的mdf文件同样的角色)。用户在Pocket PC上做的操作都先发生在SQL CE上,然后再时不时地和SQL Server2000/7.0同步(Replication)。当然,也可以用RDA(Remote Data Access)的方式,直接让数据操作发生在SQL Server 2000/7.0上。

这里一个有意思的地方是无论用Replication还是RDA,移动设备访问SQL Server 2000/7.0时必须通过IIS进行,不知道这个设计是否考虑了Web Server会放在DMZ里面而SQL会放在Internal的原因:

SQL Server CE 开发前准备第3张

2. SQL CE的安装


如果我没有记错的话,SQL Server CE 2.0是免费的,只要有SQL2K Standard/Enterprise的License,就可以下载安装使用。不过如果做商业开发,最好再核实一下。

有兴趣的可以在http://www.microsoft.com/sql/ce/downloads/ce20.asp下载SQL Server CE 2.0的安装文件,大概40多兆。下载好以后,安装之前还要准备一下这些:VS.NET 2003,SQL Server 2000 SP1 or Higher,IIS。安装的步骤是:

a) 在开发环境上安装SQL CE。

主要是安装Sqlce Data Provider的Assembly,以及后面两步安装需要的安装文件。安装的方法是直接运行下载下来的Setup.exe,一路Next就可以了。需要有VS.NET 2003。安装好以后效果是这样的:

SQL Server CE 开发前准备第4张

SQL Server CE 开发前准备第5张

b) 在IIS上安装SQL CE Server Tool,并配置连接SQL Server 2000数据库。

如果SQL Server 2000是SP1或者SP2,这一步可以用C:\Program Files\Microsoft SQL Server CE 2.0\Redist\Server下的文件安装。如果装了SP3,可以到http://www.microsoft.com/sql/ce/downloads/sp3.asp下载安装文件。

安装好了以后要配置IIS和SQL Server 2000之间的连接。配置成这样就可以了:

SQL Server CE 开发前准备第6张

这一步,如果SQL Server上面没有创建过Publisher,还需要马上创建一个。Snapshot folder等目录的权限最好放宽些,免得将来出错。

c) 最后,在Pocket PC上安装。

其实,这步不需要自己来做。VS.NET 2003在Deploy项目的时候自动会安装的。当然,如果需要手工安装,可以用C:\Program Files\Microsoft Visual Studio .NET 2003\CompactFrameworkSDK\v1.0.5000\Windows CE\下的文件安装,其中包括了数据库引擎、Query Analyzer等。我的Pocket PC是iPAQ 1940,系统是中文的PPC 2003,我用的安装文件是那个目录下的wce400\armv4\子目录。其他平台不太清楚。

这些都做完了,SQL CE的安装也就OK了。

3. 移动IBuySpy的实例


SQL CE 2.0自带了一些很好的实例,例如IBuySpy Delivery Application。IBuySpy是一个.NET的电子商务网站的demo solution,而这个IBuySpy Delivery Application是在此之上做的一个供销售人员用的移动办公工具。销售可以拿着Pocket PC到处接订单,然后回到公司以后同步到IBuySpy的数据库中。很典型的Field Service。

IBuySpy的安装路径是C:\Program Files\Microsoft Visual Studio .NET 2003\CompactFrameworkSDK\v1.0.5000\Windows CE\Samples\VB\Pocket PC\IBuySpyDelivery。不难装,一路Next就可以了,有Wizard,安装程序会把服务器上的数据库也Setup好,还会把Client发布到Pocket PC上(发布Client需要VS.NET 2003)。

下面是一些Pocket PC上的Screenshot,没摸过的兄弟看了就有感性认识了:

a) SQL CE在Device上存在形式是一个.sdf文件

SQL Server CE 开发前准备第7张

b) SQL CE也有Query Analyzer

SQL Server CE 开发前准备第8张

c) 和SQL Server 2000同步

SQL Server CE 开发前准备第9张

d) IBuySpy例子提供的一个签名控件真不错,会转换成Bit Array存储在数据库中

SQL Server CE 开发前准备第10张

上面这些心得,也可以在http://eric.tanqi.com/SQLCE/SQLServerCE.zip下载到,这是一个PPT文件。

很快SQL Server Mobile Edition也要出来了,跟着VS.NET 2005和Yukon一起,应该算是SQL CE 2.0的下一个版本。粗粗看了一眼,好像提供了Synchronization的进度API,这样就可以显示一个同步的进度条了。

免责声明:文章转载自《SQL Server CE 开发前准备》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇授权某个数据库某个表权限基础方法或属性: 列表,元组,字典,字符串,集合及内置函数等(注:只有英文名)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

转:sqlplus使用总结

为什么我要使用sqlplus: SQLPLUS很多人用的并不多,在我观察周围来看,很多人都在使用PLSQL DEVELOPER,尤其是开发人员,更是如此,那学习SQLPLUS有啥好处呢?在我看来有如下三点1、当我们要在UNIX平台用SHELL访问数据库(如:做一些后台操作,定时任务等等),这个时候SQLPLUS是唯一选择。2、SQLPLUS 是ORACLE...

JDBC高级特性(一)结果集,批量更新

一、ResultSet的高级特性 1 可滚动ResultSet    1)向前和向后滚动    滚动特性 在JDBC初期版本号中, ResultSet仅能向前滚动 在JDBC兴许版本号中, ResultSet默认能向前滚动或前后滚动 迟缓滚动:记录集可前后滚动。不受数据库数据更新影响 灵敏滚动:记录集可前后滚动,受数据库数据更新影响 由结果集类型设定 c...

Access sql语句创建表及字段类型

创建一张空表: Sql="Create TABLE [表名]" 创建一张有字段的表: Sql="Create TABLE [表名]([字段名1] MEMO NOT NULL, [字段名2] MEMO, [字段名3] COUNTER NOT NULL, [字段名4] DATETIME, [字段名5] TEXT(200), [字段名6] TEXT(200))...

SQL语句的三大类

数据定义语言(DDL Data Defination Language):用于创建和定义数据库对象,并且将对这些对象的定义保存到数据库字典中,通过DDL语句可以创建数据库对象、修改数据库对象、删除数据库对象等。 数据控制语言(DCL Data Control Language):用于修改数据库结构的操作权限。 数据操纵语言(DML Data Manipul...

使用JDBC进行简单的增删改查

JDBC为java的基础。用jdbc实现对数据库的增删改查的功能是程序员的基本要求。本例以mysql为例,首先要使用本例需要添加mysql-connector-java-5.1.7-bin.jar包。专门用来加载jdbc的驱动。如果数据库为oracle,相应的jar包换为ojdbc6.jar。 通过下面的代码可以练习一下,掌握jdbc的使用方法,自己可以对...

Oracle 11g 执行计划管理概述

以下内容来源于:http://www.51cto.com/art/200806/76223.htm 35.2  执行计划管理 35.2.1  概述 同一SQL语句的执行计划可能因为优化器的版本、优化统计、优化参数、系统设置的不同而不同。而SQL语句的执行计划自动改变,通常情况下会带来性能提升,但是在某些情况下可能导致系统性能的下降。在11g之前,DBA...