屋顶上的木帷幕

海鸥之所以追着渔船飞,是因为它们认为会有沙丁鱼抛向大海 - Eric Cantona, 1995
随笔 - 146, 评论 - 3168, 引用 - 56

导航

工具

关于


标签

每月存档

广告



访客

 

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:

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

运行时,SQL CE的感觉就好像是SQL Server 2000/7.0的一个副本,SQL CE应用程序本身在Pocket PC上会占用1-3MB空间,另外数据回存放在后缀名为.sdf的文件中(和SQL2K中的mdf文件同样的角色)。用户在Pocket PC上做的操作都先发生在SQL CE上,然后再时不时地和SQL Server 2000/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的原因:

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。安装好以后效果是这样的:

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上面没有创建过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文件

b) SQL CE也有Query Analyzer

c) 和SQL Server 2000同步

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

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

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


随贴广告(测试期)
相关文章

打印 | 张贴于 2004-05-12 18:02:00 | Tag:Mobile

留言反馈

回复: SQL Server CE 2.0 编辑
我也需要,能不能也给我一份
huangqingqing163@126.com
谢谢
2007-12-27 16:24:00 | [匿名用户:owner]
回复: SQL Server CE 2.0 编辑
我打算学习SQLCE,能给我具体的安装指南吗?
我用EVC开发!!!
谢谢了!
我的邮箱chengliang1527@126.com
2007-11-13 20:55:00 | [匿名用户:成亮]
回复: SQL Server CE 2.0 编辑
我的是sql server 2000 RTM 所以老是装不上CE 不知道为什么,提示version不对,不知该如何解决
2007-08-10 10:55:00 | [匿名用户:lzj]
回复: SQL Server CE 2.0 编辑
ce是什么意思呀?全拼是什么?
2007-05-14 15:53:00 | [匿名用户:请问]
回复: SQL Server CE 2.0 编辑
不知道有没有人知道怎么用ADOCE访问SQLCE,和访问PocketAccess,有什么不同吗。
ADOCE访问SQLCE时的put_Provider是什么。
2007-04-05 11:41:00 | [匿名用户:yzjadam]
re: SQL Server CE 2.0 编辑
我的sqlcesa30.dll的地址在本机IE里可以打开,但是在模拟器里不可以打开,在其它机器的IE里和模拟器也可以打开,为什么在我机器的模拟器上打不开呀!!弄了几天了,不知道哪里的问题,哪位高人帮忙解决呀?
2006-09-16 09:28:00 | [匿名用户:linda]
re: SQL Server CE 2.0 编辑
我的MSN是sgp_kq@msn.com,请多多交流
2006-09-03 14:37:00 | [匿名用户:morpheus]
re: SQL Server CE 2.0 编辑
请问有没有配过sql ce2.0 与sql server 2005同步呢!
用合并复制!
2006-09-03 14:36:00 | [匿名用户:morpheus]
re: SQL Server CE 2.0 编辑
我想问一下,在开发PDA时用VB.NET如何操作Excel
知道的话请回复Email:wangsir0909@yahoo.com.cn(全小写)
2006-08-18 10:12:00 | [匿名用户:wangsir0931]
re: SQL Server CE 2.0 编辑
liuccc1 ,搞定没,我的部署到模拟器的时候老是报:
内存不能为"read",错误代码是:0x004a3d91
2006-06-26 10:26:00 | [匿名用户:huanhuan2000]
re: SQL Server CE 2.0 编辑
CE不支持存储过程,Snapshot folder是快照文件夹,用于同步复制时使用
2006-03-01 17:22:00 | [匿名用户:xiumu5]
re: SQL Server CE 2.0 编辑
CE支持存储过程么
2006-01-12 12:03:00 | [匿名用户:dsa]
re: SQL Server CE 2.0 编辑
你的文章很不错啊,谢谢。
2006-01-12 09:05:00 | [匿名用户:csdncb]
re: SQL Server CE 2.0 编辑
楼主写的真是不错,有收获呀
2005-08-04 13:39:00 | [匿名用户:Johnson Su]
re: SQL Server CE 2.0 编辑
我看后还是没做出来啊。
能不能把IIS说的再详细些。
2005-07-15 10:29:00 | [匿名用户:jeep]
re: SQL Server CE 2.0 编辑
说的还是不详细,搞不出来啊
2005-06-28 15:21:00 | [匿名用户:xxx]
re: SQL Server CE 2.0 编辑
学习一下!
2005-02-22 17:24:00 | [匿名用户:fogbound]
re: SQL Server CE 2.0 编辑
是否可以不透過 sql server 的 replication 直接把 access 的 mdb 轉成 sdf 再自行用 activesync 傳到 pocket pc嗎? 謝謝.

Is it possible to convert Access's mdb to sdf directly? I don't have SQL Server installed and I cannot use "replication". Thank yoiu
2004-11-06 15:58:00 | [匿名用户:Lawrence]
re: SQL Server CE 2.0 编辑
我印象中不行。因为ce上面好像没有odbc driver这个说法,那也就没法在ce上访问mdb文件了。

但我不确认。

最好的方法是google group一下
或者自己编程试试看。
2004-11-04 10:59:00 | [匿名用户:mvm]
re: SQL Server CE 2.0 编辑
请问除了SQL Server 2000数据库外,还有其他的数据库可以用吗,比如Access 2000,可以在Windows CE上用吗?
2004-11-04 10:20:00 | [匿名用户:tiger]
re: SQL Server CE 2.0 编辑
SQL SERVER CE能和ORACLE同步吗——我记得是不可以的


就算要做,也要经过SQL Server 2000的吧?ce和sql2k同步,sql2k和oracle同步
2004-10-21 14:49:00 | [匿名用户:mvm]
re: SQL Server CE 2.0 编辑
我只在。NET里的模拟器上做过一个小程序,和SQLSERVER2000同步老是不成功,郁闷死了,SQL SERVER CE能和ORACLE同步吗?还有在模拟器做好的程序怎么放在真正的PDA上去?PC机和PDA怎么进行通讯呀?要是是有线的连接,是不是只要把线连好,那还要不要在写程序了呀?没做过,哪位朋友能否告知??
2004-10-21 14:34:00 | [匿名用户:Reler]
re: SQL Server CE 2.0 编辑
我都是图片全看不到的啊!!怎么一定要用到具体的设备啊!!怎么不介绍一下摸拟器的啊
2004-10-15 01:14:00 | [匿名用户:cslajclk]
re: SQL Server CE 2.0 编辑
如果SQL Server上面没有创建过Publisher,还需要马上创建一个。Snapshot folder等目录的权限最好放宽些.Publisher是什么东西,Snapshot folder是什么东西。图片全都看不到。
2004-10-08 11:22:00 | [匿名用户:ljy]
re: SQL Server CE 2.0 编辑
你能不能详细介绍一下IIS和SQL SERVER那儿是如何配置的!我弄了好几天没有弄出来!就百配置snapshot folder时,老是没有配置正确!还请指教
2004-09-20 13:52:00 | [匿名用户:广磊]
回复: SQL Server CE 2.0 编辑
ACTIVESYNC导SQL Server CE 2.0?能详细说明一点吗?我需要做sql ce 到sql server 的同步,但因为在sql server中有外健,数据量有比较大,不能用pull方法。
劳驾劳驾
2004-06-20 22:59:00 | [匿名用户:diablo]
回复: SQL Server CE 2.0 编辑
伤心,怎么图都看不见了
2004-06-07 19:28:00 | [匿名用户:carol]
回复: SQL Server CE 2.0 编辑
可以:sql ce->iis->sql 2k->oracle

sql2k <-> oracle用replication。

这就解决问题了
2004-05-14 14:54:00 | [匿名用户:mvm]
回复: SQL Server CE 2.0 编辑
我觉得SQL CE是让人十分郁闷的一个工具!因为它完全是封闭的,如果客户用SQL SERVER,也愿意用IIS那还好。我碰上的客户用的的ORACLE,可用的PDA又是POCKETPC!过去还有PocketAccess,那时还可以先用ACTIVESYNC导回一个MDB,再把MDB往ORACLE里灌。现在CF里连POCKETACCESS的支持都没有了(只有第三方的,不敢用),现在一听到ORACLE的客户就头大!
MS这种封闭的方式真的是太糟糕了,或者至少提供一个过ACTIVESYNC将数据导为MDB的方法也可以啊。现在见到ORACLE客户就建议它们用无线,哈哈。
2004-05-14 11:52:00 | [匿名用户:dumbo]
回复: SQL Server CE 2.0 编辑
嘿嘿,以前安裝過,也在上面寫過程序 :)

最後圖上的“鄭子穎”三個字很煸情哦
2004-05-13 08:55:00 | [匿名用户:moslem]
回复: SQL Server CE 2.0 编辑
真是太强拉:),谢谢楼主
2004-05-13 08:37:00 | [匿名用户:jiangyu]
回复: SQL Server CE 2.0 编辑
图文并茂很好。虽从来没有安装过SQL Server CE 2.0,看完文章后感觉已经安装过了。:-)
2004-05-13 07:39:00 | [匿名用户:孙展波]
回复: SQL Server CE 2.0 编辑
我代表大家谴责你一下--太长的文章,不要全部放在首页--会影响其他人文章的阅读。
2004-05-12 21:12:00 | [匿名用户:snoopy]
博客主人设置本博客不允许匿名用户发表言论,请登录后再试

Powered by: Joycode MVC Blogger System