利用NetData控件將一個ado+access的單機版應用擴展為網絡版

2019-11-22 16:30:00
tmtony8
原創
152

一個典型的ado+access的應用,其中包含了增、刪、改、查的各種操作.由于代碼比較簡單,這里就不贅述了。

    

我們的任務是如何將這個典型的單機應用,只增加兩行代碼使其擴展為網絡版。

這里我們使用NetData控件,它是 基于Winsock,ado和xml技術的vb6用戶控件

第一步:下載并注冊NetData控件:   

第二步:建立服務器端程序:

 1、新建一個vb工程,并保存,加入剛剛注冊好的NetData控件,然后將NetDataServer控件放到form1上。
 2、在Form_Load事件中加入:
                NetDataServer1.Start "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=cs.mdb;", "8888"
            這個方法有兩個參數,第一個是標準的ado連接字符串,第二個是服務器端占用的端口,這里設置為8888
            這里需要注意的是連接字符串中的數據庫路徑,這個數據庫就是adoDemo里的數據庫。我這里將它復制到
            了當前目錄下。
 3、在Form_Unload事件中加入:
                 NetDataServer1.Down   '關閉服務,釋放資源...
 4、編譯該項目,得到Server.exe
        這樣,服務器端就構建完成了。
        (詳細代碼見剛剛下載的netdatademo/服務器端)
第三步:更改原有單機版程序為客戶端程序(只須增加兩行代碼):
1、打開原有的項目,將目錄下的cs.mdb移動到剛剛建立的服務器端的目錄下。是的,客戶端不需要數據庫,
            因為數據庫存在服務器端。
2、第一步-->>> 注釋或刪除掉原有ADO本地連接代碼 
            'Public DB As New Connection   'ado對象中的連接對象
            該代碼在Form1的第一行
 3、第二步-->>> 在Form_load事件中,注釋或刪除掉原有ADO本地連接的代碼
            'DB.CursorLocation = adUseClient  '設置數據庫為本地數據庫
            'DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=cs.mdb;"
 4、第三步-->>> 在Form_load中,增加一行代碼:
            Db.Start "127.0.0.1", "8888"
            啟動客戶端,指定服務器的ip和端口,為了便于測試這里設置的是本機ip
            實際應用中需將服務器端運行在遠程服務器上,這里就要填遠程服務器的域名或ip了。
            注意:這行代碼需增加到 Call Fillfg 過程之前
 5、第四步-->>> 在Form_Unload事件中,注釋或刪除原有的ADO關閉本地連接的代碼:
            'DB.Close '注釋掉原有ADO本地連接代碼
            然后增加第二行代碼:
            Db.Down '關閉客戶端控件...
            注意:這行代碼一定要加上,不釋放資源會影響客戶端性能的。
 6、第五步--->>>最重要的一步!那就是加入NetData控件,并且將NetDataClient放到form1上,將它的name改名為DB
            注意:為了兼容舊有的代碼一定要將NetDataClient控件名改為DB
 7、編譯該項目,得到Client.exe

    至此,單機版向網絡版的升級就大功告成了。先運行server.exe,再運行3個client.exe,測試一下~


速度是不是很快。如果你有自己的internet服務器,可以將數據庫和server.exe復制到服務器上,在服務器上運行。

(別忘了在服務器端注冊NetData控件)。client.exe可以在多個客戶端運行。這樣基于vb6+access的c/s架構應用就搭建完畢了。


    基于mssql的應用也可用此方法升級,優點就是用netdata替代ado直連mssql的方式,會帶來巨大的性能提升。因為ado直連遠程

mssql實在是太慢了,查詢量稍大就會超時機器不穩定,使用netdata就從根本上解決了這個問題。


    本文只是介紹了netdata的一部分簡單的應用,如:事務、存儲過程、服務器端處理業務邏輯等一些實用性的東西沒有探討,
netdata不僅能勝任,而且十分高效。
     


分享
北京十一选五基本走势