现在的位置: 首页 > 综合 > 正文

SQL Server Compact Edition 与SQL Server 2005数据同步之请求和推送

2013年10月21日 ⁄ 综合 ⁄ 共 3347字 ⁄ 字号 评论关闭

SQL Server Compact Edition SQL Server 2005数据同步之 请求和推送

一、             前言

       相信有Windows CE Windows Mobile 开发经验的人员都或多或少要对移动终端的数据进行推送至SQL Server或是向SQL Server请求数据。但是用什么方法进行呢?相信大家立即会想到Microsoft ActiveSync,这也是个不错的选择,但这个方法只是针对文件的CopyPasteDelete等操作,还是有一定的局限性。另外大家也会想到经TCP/IP通过SocketWeb Service等进行数据同步,直接向SQL Server请求和推送数据,但是这个难度就在于SocketWeb Service的开发了。本文将介绍通过“RDA(远程数据访问)”方法,给大家参考,只要少少代码和设置便可以轻松实现了。

二、             创建快照文件夹

1           打开资源管理器中,在C盘下创建一个名为snapshot的新文件夹。右键单击snapshot文件夹,然后选择共享和安全

2           共享选项卡,选择共享该文件夹,然后单击权限

3           共享权限页中,单击添加

4           单击高级,单击立即查找,选择登陆用户名,单击确定

5           snapshot的权限中,为刚才分配的用户选中更改读取权限,然后单击确定

6           选择安全选项卡,单击添加,添加刚才的用户到用户列表中。

7           选择用户,分配以下权限:

-          读取和执行

-          列出文件夹目录

-          读取

-          写入

8           单击确定关闭快照属性窗口。

9           关闭 Windows 资源管理器。

注:如果你的电脑启用了简单文件夹共享,请选择工具,单击文件夹选项,在查看选项页中去除简单文件夹共享。这样才看到第2步以下的内容。

 

三、             配置SQL Server CompactWeb同步。

       如果你的PC上没有安装Microsoft SQL Server 2005 Compact Edition Server Tools,请到http://www.microsoft.com/downloads/details.aspx?FamilyId=4E45F676-E69A-4F7F-A016-C1585ACF4310&displaylang=zh-cn 进行下载。

1           单击开始->所有程序-> Microsoft SQL Server 2005 Compact Edition->配置 Web 同步向导

2           欢迎使用配置 Web 同步向导页上,单击下一步

3           订阅服务器类型页上,选择SQL Server Compact Edition,单击下一步

4           Web 服务器页中,选择创建新的虚拟目录,然后选择默认网站。单击下一步。剩余的步骤用于创建新的虚拟目录。

5           虚拟目录信息页上,在别名文本框中,输入虚拟目录名称。在路径文本框中设置虚拟目录的本地文件路径(可默认),然后单击下一步

6           安全通信页上,默认选择不需要使用安全通道(SSL)。用户将通过以 http:// 开头的 URL 字符串访问您的虚拟目录,然后单击下一步

7           客户端身份验证页上,选择将对客户端进行身份验证。要求输入用户名和密码,然后单击下一步

8           需经身份验证的访问页上,选择要使用的身份验证类型,这里选择集成 Windows 身份验证。然后单击下一步

9           目录访问页上,添加登陆用户权限,然后单击下一步

10       快照共享访问页上,选择每第一步中的快照,然后单击下一步

11       单击完成,完成创建并配置虚拟目录后,单击关闭 注:你的PC机上必需安装有IIS

四、             建立测试数据库

1           打开SQL Server Management Studio,新建查询,输入以下内容:

USE master;

GO

IF EXISTS (SELECT * FROM sys.sysdatabases WHERE name = 'SQLMobile')

BEGIN

    DROP Database SQLMobile;

END

GO

CREATE DATABASE SQLMobile;

GO

USE SQLMobile;

GO

CREATE TABLE Test (ID INTEGER IDENTITY (1,1)

CONSTRAINT pkID PRIMARY KEY, Test NVarChar (50));

GO

insert into Test (Test) values('Test1')

insert into Test (Test) values('Test2')

GO

打开Windows CE Query Analyzer 在路径/Program Files/SQLMobile下建立命名为sqlmobile的测试数据库。

 

五、             建立示例程序

1           打开Microsoft Visual Studio 2005,建立Windows CEDevice Application应用程序,命名为SQLMobile

2           删除菜单,添加两个button,并命名为Push(推送)和Pull(请示),闰添加单击事件。

3           在程序中添加System.Data.SqlServerCe的引用,并Using到程序中。

4           Push的单击事件中添加以下代码:

string ConnectString = @"Provider=SQLOLEDB; Data Source=***; Initial Catalog=SQLMobile; User ID=sa;Password = ***";

SqlCeRemoteDataAccess rda = null;

try

{

rda = new SqlCeRemoteDataAccess(@"http://192.168.1.3/SQLMobile/sqlcesa30.dll", @"Data Source=/Program Files/sqlmobile/test.sdf");

rda.InternetLogin = "***";

rda.InternetPassword = "***";

rda.Push("Test", ConnectString, RdaBatchOption.BatchingOff);

MessageBox.Show("Push OK.");

}

catch (SqlCeException ex)

{

MessageBox.Show(ex.Message);

}

finally

{

rda.Dispose();

}

5           Pull的单击事件中添加以下代码:

string ConnectString = @"Provider=SQLOLEDB; Data Source=***; Initial Catalog=SQLMobile; User ID=sa;Password = ***";

SqlCeRemoteDataAccess rda = null;

try

{

rda = new SqlCeRemoteDataAccess(

@"http://192.168.1.3/SQLMobile/sqlcesa30.dll",

"***",

"***",

@"Data Source=/Program Files/sqlmobile/test.sdf ");

rda.Pull("Table_1", "SELECT * FROM Table_1", ConnectString,

RdaTrackOption.TrackingOnWithIndexes);

MessageBox.Show("Pull OK.");

}

catch (SqlCeException ex)

{

MessageBox.Show(ex.Message);

}

finally

{

rda.Dispose();

}

抱歉!评论已关闭.