關於SQLCE+PDA+SQL2000的安裝配置
通過這幾天的實戰,確實有點必要寫些東西出來,記錄一下自己的經驗,免得,以後出現類以的問題又忘得一乾二淨了,先說SqlCE,它是在PDA上運行資料庫服務程式,目前我使用它主要是通過PDA與MS-SQL2000進行資料的發布與訂閱。
安裝配置需要檔案:
1.Sqlserver 2000 的SP1:SQL2KRSSP1-CHS.EXE(在微軟的網站下有下載)
2.IIS與SQLCE連線管理員:sqlce20sql2ksp3a.exe(在微軟的網站下有下載)
首先安裝:1,再安裝2,
安裝1的時候基本上沒有什麼大的問題,安裝2的時修注意,需要設定一下,將sscesa20.dll所在的目錄,用Configure Connectivity Support in IIS管理器,建立一個虛目錄,如果是NTFS格式的,一定要設好NTFS promissions 項,否則在同步的時候會出現 a call to sqlserver repl...的錯誤,之前我就沒有設定,所以弄了我兩天,老出現這個問題,頭都大了!設好之後,在IE地址欄上輸入:http://localhost/虛目錄/sscesa20.dll/
如果頁面可以正常的顯示出來Sql ce ...等字樣的,則說明已經配好了!後面的事情就是如何建立發布與訂閱的事情了,有時間再寫吧!
我現在的配置是windowsXP sp2,sqlserver2000+sp4,sqlce20sql2ksp4.exe
(1)sqlserver2000的sp4安裝很簡單,解壓後直接運行setup.dat就可以了。
確保安裝IIS
(2)然後安裝sqlce20sql2sp4.exe
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();
}
安裝.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