惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Project Zero
Project Zero
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Google DeepMind News
Google DeepMind News
Recent Announcements
Recent Announcements
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
Visual Studio Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
G
Google Developers Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Recorded Future
Recorded Future
B
Blog RSS Feed
The GitHub Blog
The GitHub Blog
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
D
DataBreaches.Net
博客园 - Franky
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Last Week in AI
Last Week in AI
NISL@THU
NISL@THU
T
Tailwind CSS Blog
博客园 - 【当耐特】
P
Privacy International News Feed
I
InfoQ
L
LINUX DO - 热门话题
H
Help Net Security
博客园 - 叶小钗
aimingoo的专栏
aimingoo的专栏
AWS News Blog
AWS News Blog
Scott Helme
Scott Helme
Cyberwarzone
Cyberwarzone
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Forbes - Security
Forbes - Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
WordPress大学
WordPress大学
T
Troy Hunt's Blog
Spread Privacy
Spread Privacy
V
V2EX
Cloudbric
Cloudbric
Security Latest
Security Latest
H
Heimdal Security Blog
S
Securelist
I
Intezer
F
Full Disclosure
V2EX - 技术
V2EX - 技术
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
小众软件
小众软件
Security Archives - TechRepublic
Security Archives - TechRepublic
L
Lohrmann on Cybersecurity
S
Schneier on Security
C
Cybersecurity and Infrastructure Security Agency CISA

博客园 - JustDI

iPhone开发环境搭建For PC Symbian中的新手问题整理(二) 来盘点下我的2008 手机也能当电脑用?--谈谈未来智能手机操作系统的走向 symbian中的新手问题整理(均有解答) 渐走渐近的symbian,渐行渐远的.NET Symbian C++学习之描述符 J2ME,CompactFramework,c++,我该如何取舍 基于.NET CompactFramework的九宫格控件(附源码) 慵懒的心态 篮球战术谈之快攻 篮球战术谈之1-2-2进攻法 篮球战术谈之经典配合 话说微软刚出的同步框架Sync Services 我看windows mobile数据同步方案 [翻译]一步步教你配置SQL SERVER合并复制(七)管理Publication [翻译]一步步教你配置SQL SERVER合并复制(六)配置Publisher(下) [翻译]一步步教你配置SQL SERVER合并复制(五)配置Publisher(上) [翻译]一步步教你配置SQL SERVER合并复制(四)提高Distributor的安全性
[翻译]一步步教你配置SQL SERVER合并复制(八)代码部分(使用.NET CompactFramework)
JustDI · 2008-04-23 · via 博客园 - JustDI
     

上一篇:一步步教你配置SQL SERVER合并复制(七)管理Publication

      这个系列的翻译也拖了一段时间,现在决定一次性将它理清了。关于合并复制服务器的配置在前面的翻译文章中都已经详细地论述完了,现在终于到了订阅者是如何使用我们配制好的合并复制了。下面的代码是针对.NET CompactFramework的,其实整个合并复制的过程中,安装和配置占了95%的时间,而创建订阅仅仅需要5%的时间,合并复制的这个特征减小了我们敲代码时出现错误的几率,将更多地工作移植到了服务器上来,这样如果有错误发生的话,我们求助微软的几率要比求助开发者的几率要大得多。

     在.Net CompactFramework中,合并复制我们只需要一个类SqlCeReplication,它是位于System.Data.SqlServerCe中的。

using System.Data.SqlServerCe;

下面是示例代码:

  SqlCeReplication repl = null;
            
try
            
{//实例化一个SqlCeReplication对象
                repl = new SqlCeReplication();
                
//设置IIS上的SQL MOBILE SERVER代理
                repl.InternetUrl = YourServerToolsUrl;
                
//访问ServerTools的用户
                repl.InternetLogin = YourWebUser;
                
//访问ServerTools的用户密码
                repl.InternetPassword = YourWebPwd;
                
//发布复制的数据库服务器名称
                repl.Publisher = YourPublisher;
                
//发布复制的数据库名称
                repl.PublisherDatabase = YourPublisherDatabase;
                
//发布合并复制的名称
                repl.Publication = YourPublication;
                
//用户过滤同步数据的主机名称
                repl.HostName = UserID;
               
//发布复制的验证模
                repl.PublisherSecurityMode = SecurityType.NTAuthentication;
                
//订阅者的名称
                repl.Subscriber = new Random().Next().ToString();
                  //订阅者的数据库的连接字符串
                repl.SubscriberConnectionString 
= ConnectionString;
                
//如果数据库不存在的话就下载新的数据库
                if (!DatabaseExists())
                
{
                    repl.AddSubscription(AddOption.CreateDatabase);
                }

                repl.Synchronize();
            }

            
finally
            
{
                repl.Dispose();
            }

      当你完成一切工作,如果设备初始化时未加入数据库时,下载快照文件时,会先在设备上创建一个初始化的本地数据库,这个初始化的本地数据库是20KB,然后数据库的内容就会被下载并插入到这个空数据库当中,如果这时候刚刚好网络断开或者是其他原因造成不能下载数据库的时候,你会发现你的设备上的数据库只有20KB。所以说在同步数据库之后检查下数据库的大小是否大于20KB,如果大于20KB的话就表明你已经成功地将服务器上的数据下载到设备上来,否则的话就表明同步失败。

      同步复制因为在服务器端做了太多的工作以至于我们在碰到错误的时候会显得束手无策,这些都是需要我们彼此去交流探讨关于同步工作的一些问题的解决方案。希望本文能给你带来一点帮助。