<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于MobiLink的移動數(shù)據(jù)庫同步技術(shù)研究

          基于MobiLink的移動數(shù)據(jù)庫同步技術(shù)研究

          作者: 時間:2010-04-01 來源:網(wǎng)絡(luò) 收藏
          2.2 系統(tǒng)初始化
          2.2.1 填充[5]
          (1)統(tǒng)一
          服務(wù)器dbsrv9上啟動數(shù)據(jù)庫consol.db后,通過Sybase Central連接到數(shù)據(jù)庫,為數(shù)據(jù)庫創(chuàng)建一個名為student的表,只添加屬性SId和SName,不填充數(shù)據(jù)。
          (2)遠(yuǎn)程數(shù)據(jù)庫
          啟動Windows CE上的網(wǎng)絡(luò)數(shù)據(jù)庫服務(wù)器,并在服務(wù)器啟動遠(yuǎn)程數(shù)據(jù)庫remote.db。然后用Sybase Central通過網(wǎng)絡(luò)連接到遠(yuǎn)程數(shù)據(jù)庫,為數(shù)據(jù)庫創(chuàng)建一個名為student的表,添加與統(tǒng)一數(shù)據(jù)庫中的表student相同的屬性,并添加記錄。
          2.2.2 創(chuàng)建數(shù)據(jù)源
          (1)統(tǒng)一數(shù)據(jù)庫
          用ODBC管理器為統(tǒng)一數(shù)據(jù)庫consol創(chuàng)建數(shù)據(jù)源test_consol。
          (2)遠(yuǎn)程數(shù)據(jù)庫
          由于Windows CE沒有ODBC管理器,因此為遠(yuǎn)程數(shù)據(jù)庫創(chuàng)建文件數(shù)據(jù)源。創(chuàng)建名為student.dsn的文本文件,填充如下內(nèi)容:
          [ODBC]
          uid=dba
          pwd=sql
          enginename=remote
          databasename=remote
          2.2.3 準(zhǔn)備
          (1)遠(yuǎn)程數(shù)據(jù)庫
          通過Sybase Central連接到遠(yuǎn)程數(shù)據(jù)庫,為表student創(chuàng)建一個新的發(fā)布stu_pub。創(chuàng)建用戶ml_student,為該用戶預(yù)定發(fā)布stu_pub。設(shè)置預(yù)定ml_student的屬性,在Connection選項卡中分別設(shè)置PC機的IP地址和服務(wù)器啟動的端口號。
          (2)統(tǒng)一數(shù)據(jù)庫
          通過 Synchronization連接到統(tǒng)一數(shù)據(jù)庫,在表->DBA中將student表添加到表中,新建版本default。
          在同步表中選擇student表,為其添加如下腳本。
          Download_cursor
          SELECT SId, SName FROM student
          Upload_insert
          INSERT INTO student(SId, SName) VALUES (?,?)
          Upload_update
          UPDATE student SET SName =? WHERE SId =?
          Upload_delete
          DELETE FROM student WHERE SId =?
          2.3 啟動同步
          2.3.1 啟動MobiLink服務(wù)器

          在PC機命令提示符中運行如下命令:
          dbmlsrv9-c“dsn=test_consol”-o mlserver.mls-v+-dl-x tcpip(port=2639)-za-zu+
          2.3.2 啟動MobiLink客戶端
          針對Adaptive Server Anywhere遠(yuǎn)程數(shù)據(jù)庫,MobiLink提供了2種客戶端,(1)用于支持Win32平臺;(2)用于支持Windows CE平臺。在2種平臺中MobiLink客戶端文件名都為dbmlsync的命令行程序。
          在Win32平臺中啟動MobiLink客戶端有2種方法:
          (1)直接運行程序dbmlsync,如圖2所示,在這個設(shè)置界面中設(shè)置好相關(guān)參數(shù)后即可啟動同步。

          本文引用地址:http://www.ex-cimer.com/article/151976.htm


          (2)在命令提示符中運行如下命令:
          dbmlsync-c “dsn=student”-e “sch=EVERY:00:05”
          與Win32平臺不同的是,一方面Windows CE平臺不支持命令行程序;另一方面Windows CE平臺中的MibiLink客戶端輸入相關(guān)參數(shù)后仍然不能順利實現(xiàn)同步,而且在只有觸摸筆的Windows CE設(shè)備中輸入?yún)?shù)很不方便。
          為了解決這個問題,本文采用了快捷方式文件啟動的方法。在Windows CE中創(chuàng)建名為sync.lnk的文本文件,內(nèi)容如下:100#“Program FilesSybaseASA9dbmlsync.exe” -c “dsn=student” -e “sch=EVERY:00:05”。
          這是一個指向dbmlsync的快捷方式文件,同時在文件中提供了程序運行所需要的參數(shù),運行這個文件即可成功實現(xiàn)同步。同步后的狀態(tài)如圖3所示。


          3 應(yīng)用前景
          MobiLink可以應(yīng)用于具有以下要求的同步系統(tǒng):
          (1)大量數(shù)據(jù)庫,MobiLink可用于支持大量的遠(yuǎn)程數(shù)據(jù)庫。在單個系統(tǒng)中,可支持?jǐn)?shù)以千計的遠(yuǎn)程數(shù)據(jù)庫。
          (2)不定時連接,MobiLink支持不定時連接或間接連接到服務(wù)器所在網(wǎng)絡(luò)的數(shù)據(jù)庫。
          (3)靈活的同步調(diào)度,應(yīng)用程序按指定的間隔(幾分鐘、幾小時或幾天)進(jìn)行連接和同步。
          (4)低或中等容量,每次只能給遠(yuǎn)程站點準(zhǔn)備1個下載信息。在MobiLink系統(tǒng)中,如果數(shù)據(jù)量很大,就會造成較長的連接時間,因為遠(yuǎn)程站點在同步完成之前不能斷開連接。
          (5)異類數(shù)據(jù)庫,MobiLink支持將許多常用的關(guān)系數(shù)據(jù)庫用作統(tǒng)一數(shù)據(jù)庫。遠(yuǎn)程站點的模式可以與統(tǒng)一數(shù)據(jù)庫的模式不同,因為可通過編寫腳本來控制同步過程。
          隨著計算、無線通信數(shù)據(jù)庫的飛速發(fā)展,MobiLink數(shù)據(jù)庫同步技術(shù)將會在數(shù)據(jù)庫系統(tǒng)中發(fā)揮越來越重要的作用。
          本文在分析了MobiLink數(shù)據(jù)庫同步技術(shù)原理的基礎(chǔ)上,了通過MobiLink來實現(xiàn)移動數(shù)據(jù)庫同步的方法,并利用快捷方式文件解決了Windows CE中MobiLink客戶端不能有效傳遞參數(shù)和輸入不便的問題,最后對MobiLink同步技術(shù)的應(yīng)用前景提出了展望。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();