MySQL是當前最流行的網絡數據庫,其中的原因包括:
運行速度快
免費
能運行在Linux及其他的一些平台
能與apache(一種流行的網絡服務器)完美結合
能與 PHP完美結合
MySQL具有一個ODBC接口。如果你操作的是網絡服務器或MySQL服務器,並想把數據關聯到桌面應用程序,采用ODBC接口是一個很好的方式。但如果你不是對服務器操作,訪問MySQL的端口很有可能無效,此時只能尋求其他方法來操作你的數據。
存在的問題
所提及的問題都是針對客戶機而言的。出於安全起見,客戶機程序一般都通過一個主機選擇網絡代表,從而避免在網絡上頻繁地登錄自己的系統。許多主機都能提供合適的條件和MySQL,可擴展的FrontPage,CGI及其他站點制作工具。它們也能滿足硬件和軟件的匹配問題。這一獨特的主機甚至能提供各種工具幫助你增加或刪除你的MySQL數據庫,但是它只以基本的MySQL存放處格式進行,這就不能夠直接地讀入Access或其他的桌面程序。
客戶機程序不想在自己單位上的服務機安裝MySQL,可以通過我的程序來傳遞數據,只要在我的機器上運行MySQL。我可以人工地通過主機存放處獲取數據。這一過程包括把數據加載到數據庫,並通過ODBC傳送到Access,然後向客戶機發送數據庫內容。我並不介意所完成的這些工作,但是我們應該簡化一些不必要的工作而不要過多地依賴於人工操作。
讓我再說明一下以上的過程。首先主機在網頁上顯示數據存放處,通過簡單的代碼和注冊我獲取了數據庫的數據,注冊之原因是出於安全考慮。現在,我采用微軟的網頁浏覽器ActiveX控件直接操作Access數據庫,這就允許用戶很容易地通過注冊過程,點擊按鈕即可獲取MySQL數據,然後把數據傳遞到Access數據庫的相應表中。只要數據是在Access數據庫中,用戶就可以用ODBC或他們慣用的方法把數據傳遞到ERP系統或其他專用系統。
Microsoft Access數據庫
Access數據庫相當簡單,它是由一些數據表組成,數據表列舉你要添加的數據。在這一節裡,我采用的數據表名為Sales_Data,是由一個虛擬網站上的購車數據組成。同樣,這一數據表應和主機上的MySQL數據表無論在名字,還是結構上都要完全一樣。事實上,我們首先要在Access(圖A)中生成一個數據表,然後通過ODBC把數據轉移到當地服務器的MySQL上。
Figure A
Access應用程序打開的同時也打開了網頁控制面板窗體。在我的例程中,程序在我的服務器上通過了PHP注冊。
Figure B
采用的ActiveX控件名為WebBrowser1,執行的代碼如下:
Private Sub Form_Load()
WebBrowser1.Navigate2 http://192.168.192.1/~stew/MySQL/
End Sub
Figure C
MySQL screen shot
窗體中其他部分包括有兩個按鈕,第一個按鈕(彈出控制面板)通過下面的代碼顯示MySQL的屏幕(如圖C):
Private Sub LoadControlPanel_Click()
WebBrowser1.Navigate2 http://192.168.192.1/~stew/mysql/MySQL_dump.PHP
End Sub
第二個按鈕獲取數據,這是代碼中的主要部分。
接著,你將會看到Access數據庫的一個下拉式列表,並且這一列表中已經有數據。在這一例子中,列表名為Sales_Data。
再者,復選框會讓選擇在添加數據之前是否刪除舊的數據,你可以在這裡做一些有用的操作,但這些操作必須是合法的。
最後,兩個文本接口包含了單位名稱以及MySQL數據庫名稱。
總結
以上就是過程的全部。用戶必須通過網絡接口來運行主機上的數據庫查詢。當MySQL存放處顯示在窗體浏覽器上(如圖D),點擊獲取數據按鈕就可以獲取數據並存放在Access數據表中。程序也會檢測數據存放處是否是基於一定格式的MySQL,並確保是正確的數據庫和數據表。如果這些規則滿足,就會執行程序中的INSERT命令把數據添加到目標數據表,此時會彈出一個消息對話框以顯示這一過程。如果有錯誤產生則返回到窗體。Listing A包含了完整的代碼。
Figure D