sql server 2000與sql server ce2.0通過SqlCeRemoteDataAccess實現資料同步
我已經安裝過sql server 2000和sql server ce2.0,接下來只是給這兩個安裝補丁,我安裝的補丁是:Microsoft_sql2ksp4chs1.exe和sqlce20sql2ksp4.exe(也就是sql server ce server tools),確保兩個補丁是一樣的版本,這裡兩個都是sp4的。
(1)安裝Microsoft_sql2ksp4chs1
要先裝這個Microsoft_sql2ksp4chs1,他是sql server2000的很容易安裝,按照步驟就好了。
(2)安裝sqlce20sql2ksp4.exe
注意:在安裝前,確保IIS服務已經啟動
i. 按照提示安裝
ii. 進入SQL Server CE Virtual Directory Creation Wizard介面
iii. 給virtual directory 輸入名稱 “sscepubs”(這個你可以自己命名)
iv. 選擇“anonymous access”
v. 下一步,不進行任何選擇
vi. 安裝完成
(3)修改SQL Server 2000
進入SQL Server的企業管理器,在正在啟動並執行Sever中選擇安全性,建立登陸,新增加使用者IUSER_電腦名稱(Internet來賓帳號), 並在資料庫
訪問中選中要訪問的資料庫,增加角色”db_owner”,點擊確定,完成使用權限設定
(4)測試是否安裝成功
在IE中輸入http://伺服器的IP地址/sscepubs/sscesa20.dll, 如果串連成功且出現“SQL Server CE Agent”
這樣子就好了,可以利用SqlCeRemoteDataAccess這個來實現同步了
pull是從 SQL Server 資料庫中提取資料並將其儲存在 SQL Server CE 資料庫的表中
// Connection String to the SQL Server.
string rdaOleDbConnectString = "Provider=sqloledb; Data Source=MySqlServer;Initial Catalog=Northwind; " +
"User Id=username;Password = <password>";
// Initialize RDA Object.
SqlCeRemoteDataAccess rda = null;
try {
//Try the Pull Operation.
rda = new SqlCeRemoteDataAccess();
rda.InternetLogin = "MyLogin";
rda.InternetPassword = "<password>";
rda.InternetUrl = "http://伺服器的IP地址/sscepubs/sscesa20.dll";
rda.LocalConnectionString = @"Provider=Microsoft.SQLSERVER.OLEDB.CE.2.0;Data Source=\ssce.sdf";
rda.Pull(
"Employees",
"Select * from Employees",
rdaOleDbConnectString,
RdaTrackOption.TrackingOnWithIndexes ,
"ErrorTable");
}
catch(SqlCeException) {
//Use you own Error Handling Routine.
}
finally {
//Dispose of the RDA Object.
rda.Dispose();
}
push是將 SQL Server CE 資料庫中跟蹤提取表中的更改傳送回 SQL Server 表
string rdaOleDbConnectString = "Provider=sqloledb; Data Source=MySqlServer;Initial Catalog=Northwind; " +
"User Id=username;Password = <password>";
// Initialize RDA Object.
SqlCeRemoteDataAccess rda = null;
try {
//Try the Pull Operation.
rda = new SqlCeRemoteDataAccess();
rda.InternetLogin = "MyLogin";
rda.InternetPassword = "<password>";
rda.InternetUrl = "http://伺服器的IP地址/sscepubs/sscesa20.dll";
rda.LocalConnectionString = @"Provider=Microsoft.SQLSERVER.OLEDB.CE.2.0;Data Source=\ssce.sdf";
rda.Push("MyLocalTable",
rdaOleDbConnectString,
RdaBatchOption.BatchingOn);
}
catch(SqlCeException) {
//Use you own Error Handling Routine.
}
finally {
//Dispose of the RDA Object.
rda.Dispose();
}
剛接觸pda開發,什麼都不懂,一點點地摸索吧,謝謝我的同事!
(一)安裝.NET CF和SQL CE組件 netcf.core.ppc3.arm.cab System_SR_chs.cab sqlce.ppc3.arm.CAB sqlce.dev.ppc3.arm.CAB sql.ppc3.arm.CAB
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1496651