資源描述:
《利用rda實(shí)現(xiàn)sql ce與桌面sql server數(shù)據(jù)庫(kù)間的數(shù)據(jù)存取》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、利用RDA實(shí)現(xiàn)SQLCE與桌面SQLServer數(shù)據(jù)庫(kù)間的數(shù)據(jù)存取 本文示例源代碼或素材下載 本文介紹如何利用RDA(RemoteDataAccess遠(yuǎn)程數(shù)據(jù)存?。?shí)現(xiàn)掌上電腦PocketPC(簡(jiǎn)稱PPC)上的SQLServerCE2.0與桌面SQLServer2000數(shù)據(jù)庫(kù)間的數(shù)據(jù)存取。我們將采用VisualBasic.Net2003進(jìn)行智能設(shè)備端的程序開發(fā)?! 「攀觥 PC程序與桌面PC進(jìn)行通信的編程方式目前有兩種,1、利用Socket編程與桌面程序進(jìn)行通信;2、利用RDA和Replication(復(fù)制)進(jìn)行數(shù)據(jù)庫(kù)編程來(lái)完成與桌面SQLServer數(shù)據(jù)庫(kù)的存取。利用So
2、cket編程實(shí)際上就是通過(guò)TCP/IP協(xié)議與桌面PC進(jìn)行通信,它可以很方便的傳輸一般類型的數(shù)據(jù),譬如:字符串、整數(shù)以及字節(jié)等,但是如果需要傳輸類型化的數(shù)據(jù)則需要程序員自己去封裝,而且若想由智能設(shè)備從桌面數(shù)據(jù)庫(kù)引擎中返回指定數(shù)據(jù)庫(kù)表的數(shù)據(jù),必須編寫桌面接口服務(wù)程序來(lái)查詢數(shù)據(jù)并將結(jié)果通過(guò)Socket返回給智能設(shè)備。那么如何才能在PocketPC上做到像在桌面PC上一樣存取本地?cái)?shù)據(jù)庫(kù)甚至是遠(yuǎn)程桌面PC的數(shù)據(jù)庫(kù)呢?通過(guò)在智能設(shè)備PocketPC上運(yùn)行的SQLServerCE我們便可以輕松存取放置在PocketPC上的SQLServerCE數(shù)據(jù)庫(kù),還可以通過(guò)SQLServerCE中的RDA
3、或者合并復(fù)制快速實(shí)現(xiàn)從智能設(shè)備上存取遠(yuǎn)程桌面SQLServer2000的數(shù)據(jù)庫(kù)?! 《⒓夹g(shù)要點(diǎn) SQLServerCE全名是MicrosoftSQLServer2000icrosoftSQLServer實(shí)例的計(jì)算機(jī),可以將IIS和SQLServer部署在同一臺(tái)已算機(jī)上,也可以分別配置到多臺(tái)計(jì)算上。RDA和合并復(fù)制都需要通過(guò)IIS來(lái)與SQLServer進(jìn)行通信。SQLServerCE依靠幾個(gè)組件來(lái)與SQLServer進(jìn)行數(shù)據(jù)交換,1、數(shù)據(jù)庫(kù)引擎用于管理基于icrosoftSQLServer2000程序進(jìn)行接收和查看,但是如果我們只拿PocketPC設(shè)備能否完成任務(wù)的接收呢?答案
4、當(dāng)然是肯定的?! ≡赑ocketPC上我們創(chuàng)建數(shù)據(jù)庫(kù)客戶端程序,編寫RDA程序需要用到.壓縮框架中System.Data.SqlServerCe命名空間中的SqlCeRemoteDataAccess類。從桌面PC查詢并獲取記錄集到PocketPC上我們需要使用rda.pull方法,pull有多種重載版本,我們使用最常用的版本,localTableName是將要接收提取的SQLServer記錄的SQLServerCE本地表的名稱。sqlSelectString為任何有效的Transact-SQL語(yǔ)句,包括SELECT語(yǔ)句和存儲(chǔ)過(guò)程,它們指定從遠(yuǎn)程SQLServer數(shù)據(jù)庫(kù)中提取哪些表
5、、列和記錄以存儲(chǔ)在SQLServerCE數(shù)據(jù)庫(kù)中。oledbConnectionString是連接SQLServer數(shù)據(jù)庫(kù)時(shí)使用的OLEDB連接字符串。trackOption表示SQLServerCE是否跟蹤對(duì)提取表所做的更改,以及1234下一頁(yè)——感謝閱讀這篇文章,..,提取的表上存在的索引是否轉(zhuǎn)到具有主鍵約束的設(shè)備。我們使用的版本為: rda.Pull(itemlist,Select*fromitemlistp_id='+EMPId+',RemoteConnString, RdaTrackOption.TrackingOnDAsSqlCemand=Nean
6、d selectCMD.mandText=updateitemlistsetfinished=1e是指已經(jīng)從SQLServer提取的記錄的SQLServerCE本地表的名稱。oledbConnectionString為連接SQLServer數(shù)據(jù)庫(kù)時(shí)使用的OLEDB連接字符串。batchOption表示正發(fā)送回SQLServer表的更改是組成一批共用同一事務(wù),還是分別應(yīng)用。我們的版本需要將所有行組成一批,歸并到一個(gè)事務(wù)推入SQLServer?! da.Push(itemlist,RemoteConnString,RdaBatchOption.BatchingOn) <!
7、--[if!supportLists]-->四、<!--[endif]-->環(huán)境配置及程序?qū)崿F(xiàn) 很多網(wǎng)友不能成功運(yùn)行SQLServerCE的RDA和合并復(fù)制程序很大程度都是因?yàn)榕渲脝?wèn)題。正確安裝SQLCE和配置IIS及SQLServer2000是運(yùn)行SQLCE數(shù)據(jù)庫(kù)程序的關(guān)鍵。安裝SQLServerCE時(shí)需要注意,安裝程序在安裝服務(wù)器工具時(shí)會(huì)抱錯(cuò),這是SQLServerCE本身與SQLServer2000存在兼容性及安全性問(wèn)題,解決的辦法是先忽略,然后更新桌面