用XBase開發的程序,在系統老化之後,不應盲目推翻重來,而是要利用新技術把原有資源轉化,以適應現在的需求。XBase型數據庫比較適合轉化成網絡數據庫。做網絡數據庫要有前台的應用程序和後台的網絡數據庫。前台程序的開發平台可以用Delphi,Visual FoxPro和PowerBuilder。後台的網絡數據庫可以是Novell 的Sybase,WindowsNT 的SQL Server, UNIX的Informix,以及DB/2 for NT等等。
ClIEnt/Server模式的突出優點是數據集中化,跨系統信息共享,便於數據管理和維護,但對客戶端維護困難的問題,我們在後面提出一個解決方法。客戶端與主服務器通過網絡以TCP/IP協議連接。客戶端可以並發的存取主服務器上的數據。系統管理員可以在主服務器上監視客戶的上線情況及數據庫的使用情況,做到實時監控。Delphi是Borland(已經更名Inprise)的產品,控件多,比較適合數據庫開發。下面用Delphi 3.0 C/S for Win95做前台應用程序,後台采用Windows NT的SQL Server 6.5(以下簡稱SQL服務器)做服務器來說明一個程序的開發過程及注意事項。
一、基本編程原理和步驟 基本原理如圖所示
1?開發環境
我們在開發ClIEnt/Server應用程序時需要兩台機器(服務器,一個客戶機),但Delphi可以做到單機開發。Delphi的可伸縮性很強,把應用程序由單層過渡到兩層,只要簡單地把連接的數據集由本機的數據庫重新指向SQL服務器即可。像PowerBuild 一樣,Delphi也有本地庫,這就是InterBase Server,它提供了一個單用戶多實例的SQL服務器平台,可以做測試平台。我們在將數據庫應用程序轉移到對Sybase等遠程數據庫的訪問之前,可以在Local InterBase Server平台建立和測試數據庫應用程序。這樣可暫時不考慮網絡連接,專心致力於解決業務邏輯。當業務邏輯實現後,只要把Database 控件中的Aliasname 改成新的數據源即可將程序擴大到網絡環境。大大提高了開發軟件的效率,並且降低了開發難度。
2?後台建立數據庫並創建連接
數據庫建立包括安裝系統,建庫建表,對數據庫寫觸發子和存儲過程。
安裝時要注意的是要把SQL Server的客戶數留到50 以上。否則服務器會在用戶多了以後死鎖。
SQL Server是圖形化的管理,庫表的建立非常容易 。我們不提倡直接建立數據庫、表格,輸入數據。我們采取的方法是利用已有DBF數據庫,在Delphi的Database Desktop把DBF轉換成SQL Server中的表格。這樣XBase開發的程序的資源就不會浪費了。對新表,用FoxBase建表格,輸入數據後再轉換。具體方法是:先用ODBC建立與SQL Server連接的數據源,用Database Desktop的菜單項TOOLS->UTILITIES->COPY的功能。其實這個工具可以進行異種數據庫轉換,在本身具有ODBC驅動程序或Delphi的SQL LINK支持的數據庫之間任意進行轉換。
3.前台程序的基本編程
Delphi與後台數據庫的連接可有兩種途徑,一是ODBC,這是標准,兼容性很好。二是Delphi帶的SQL Link,它由Delphi自己開發,速度稍快,但我們在應用中發現SQL Link對有些數據庫系統的支持並不是很穩定,如連Informix時,退出時就很容易死機。所以常以ODBC連接數據庫。在控制面板的ODBC中需要設置數據源名稱,服務器名稱(如果不設置登錄的數據庫名稱,就將登錄到後台數據庫給你這個用戶的默認數據庫)。
Delphi是快速開發工具(RAD)中最容易上手的。編程一般經過三個步驟:
(1)注冊ODBC數據源;
(2)配置BDE;
(3)往FROM 上放置Query/Table,DataSource, DBgrid控件,分別設置控件屬性以實現與數據庫的連接操作。具體說明如下:
Delphi 涉及數據庫編程的控件有兩類:
數據顯示控件:用來顯示數據庫內的數據。DBGrid用於全屏顯示和編輯數據庫表中的記錄。數據連接控件:負責掌管數據庫的連接。
Database控件是為開發兩層數據庫應用程序時,設置登錄數據庫的有關參數。
Query 控件是用來傳遞SQL語句到服務器上得到一個數據集或執行一個動作。
Datasource控件是連接數據顯示控件和數據連接控件的橋梁。
Query控件執行靜態SQL語句的寫法是:
Query1.SQL.Clear;
Query1.SQL.Add(‘SELECT * FROM databasename ’);
Query1.SQL.Open,
值得一提的是Delphi中還有種動態SQL,可以嵌入變量參數,給編程帶來極大方便。