用C++ Builder開發(fā)多層數據庫應用程序
發(fā)表時間:2024-02-11 來源:明輝站整理相關軟件相關文章人氣:
[摘要]繼Client/Server結構在MRP、MIS等數據庫應用系統(tǒng)紅火之后,多層結構(Multi_Tier)開始登場。許多廠商提供了各種中間件,本文描述了用Borland C++ Builder(以下簡稱BC++B)所提供的Multi_Tier構件來開發(fā)Multi_Tier數據庫應用程序的方法。 ...
繼Client/Server結構在MRP、MIS等數據庫應用系統(tǒng)紅火之后,多層結構(Multi_Tier)開始登場。許多廠商提供了各種中間件,本文描述了用Borland C++ Builder(以下簡稱BC++B)所提供的Multi_Tier構件來開發(fā)Multi_Tier數據庫應用程序的方法。
一、Multi_Tier結構的實現(xiàn)
C++ Builder提出的Multi_Tier是把以前的Client/Server前端應用程序內的BDE、SQLLink、DataModule拿到另一臺NT服務器上,也叫應用程序服務器,而前端機只留下應用程序及DBClient.DLL,而移到應用程序服務器上的DataModule則變成一個COM程序,此COM程序是通過BDE、SQL Link傳輸SQL到后端數據庫,并從后端數據庫存取數據;然后由Tdatasetprovider組件把讀取的Dataset壓縮并切割成一段一段的數據包(data packet)通過DCOM的機制傳給前端機,前端機上的DBClient.DLL會把接收到的數據包再還原成DataSet傳給程序中的TclientDataSet組件,Data Control組件就可以TclientDataSet為數據源對之進行操作。而COM程序會把修改后的DataSe正確地寫回后端數據庫。
與Client/Server結構相比,Multi_Tier結構具有很多優(yōu)點,主要為:
1、大幅度地減少數據庫服務器的負擔。因為多了一層應用程序服務器,接管了眾多Client端機的Connection處理,數據庫服務器只需處理應用服務器的Connection,這樣就不會因為用戶(Client)數的增加而影響系統(tǒng)的運行性能。
2、前端機應用程序安裝方便。Multi_Tier結構中,把以前的Client/Server前端應用程序內的BDE、SQL Link、DataModule拿到數量很少的應用服務器上,前端機只負責UseInterface的處理,只需要一個單純的EXE文件(包括DBClient.DLL),可以在應用服務器上開發(fā)前端應用程序,通過網絡復制到各個前端機上。
二、環(huán)境配置
1、后端數據庫服務器:
數據庫系統(tǒng)及數據庫提供的中間軟件,本文為VMS系統(tǒng)上安裝ORACLE 7.3,也可安裝ORACLE8、SQL*NET 2.3 。
2、應用程序服務器:
。1)在PC Server上安裝Windows NT,使它成為一臺Microsoft NT Server。
。2)保證網絡的暢通,即網絡層的通訊協(xié)議(TCP/TIP,IPX…)的暢通。
。3)安裝數據庫系統(tǒng)提供的中間件,本文是ORACLE提供的ORACLE for NT 的SQL*NET產品,執(zhí)行SQL*NET Easy Configuration工具,設定ORACLE的TNS連接參數,加入一個數據庫別名,連上后端的ORACLE數據庫服務器。
。4)安裝BDE Administrator,設定BDE的參數內容,具體步驟是Databases中新建一個別名,本文是ORACLE2,其中的參數改為:
SERVERNAME: 在第3步中定義的ORACLE數據庫服務器的別名。
NET PROTOCOL: TNS
USER NAME: ORACLE的用戶名/口令
。5)安裝開發(fā)用的C++ builder 5軟件,用于開發(fā)應用服務器和客戶端的程序。
3、前端客戶機:
(1)安裝操作系統(tǒng)Windows 95/98,本文是Windows 98,保證各前端機與應用服務器在TCP/IP層上連通。
。2)從NT服務器的\Winnt\System32目錄下復制的DBClient.DLL到本機的 \Windows\System。
。3)如操作系統(tǒng)為Windows 95,必須安裝DCOM程序,因為Windows 98與Windows NT Workstation已經內含DCOM程序,不需另外安裝。
(4)應用程序,在應用服務器上開發(fā),通過網絡復制。
三.實現(xiàn)步驟
下面是一例對材料庫存表進行維護的Multi_Tier結構數據庫管理程序,用戶可以在前端的Windows 98機上通過中間的NT應用服務器對Alpha機上的ORACLE數據庫上的庫存表進行維護:
1、應用服務器上程序的開發(fā):
(1)打開一個新工程,然后點主功能菜單[NEW]中的[RemoteDataModule] 填上Coclass Name項,這里是KCBB。
。2)在RemoteDataModule上放置DATABASE,TABLE ,DataSetProvider三個組件,并設屬性如下:
Database1 的Aliasname ORACLE2
Database1 的 Databasename TEST
Database1 的 Connected TRUE
Table1 的 Databasename TEST
Table1 的 Tablename KCB
Table1 的Active TRUE
(這六行目的是連上后端數據庫ORACLE2的表KCB)
DataSetProvider的Dataset TABLE1
DataSetProvider 的Exported TRUE
(這兩行目的是DataSetProvider組件將表KCB作為DATASET傳給前端程序)
。3)在Forms1加一個Lable組件,上面寫上"服務器應用程序已被啟動",這樣運行時屏幕上就會出現(xiàn)這句話,說明程序已被調用。
(4)運行程序,進行注冊操作。
為了前端程序能連上此COM程序,必須把它注冊到服務器的注冊表內,可通過運行Regedit.EXE,根據COCLASS NAME捜尋注冊名來確認注冊是否成功。
2、前端程序的開發(fā):
。1)打開一個新工程,拖拉一個DCOMConnection組件,一個ClientDataSet組件,DataSource組件,Dbgrid組件到FORM1上,并設屬性如下:
DCOMConnection1的Computername 應用服務器的機器名
DCOMConnection1的Servername PROJECT1.KCBB(COM注冊名)
ClientDataSet1的 Remoteserver DCOMCONNECTION1
ClientDataSet1的 Provider TABLE1
ClientDataSet1的 ACTIVE TRUE
(這五行連接上應用服務器的COM程序,接收表KCB作為本機的Dataset)
DataSource 的 DATASET ClientDataSet1
Dbgrid的DataSource DataSource1
(這兩行用Dbgrid組件對本機Dataset進行操作)
。2)拖7個Button來當作功能按鈕 ,分別設為新增、修改、刪除、取消、寫入、重新讀取、返回 。由于BC++B提供了ActionList組件,其中包括了StandardAction,可以利用這些標準的Action來編寫Dataset的編輯功能, 只要把Button的屬性Action依照每Button所賦予的功能指向對應的ActionList項即可。
3、將調試好的前端程序復制到所有的前端機中,運行調試,一個Multi_Tier結構的數據庫應用程序就可投入使用了。
本文描述了開發(fā)Multi_Tier結構的數據庫應用程序的一種方法,還需要進一步完善,如怎么樣提高數據在其上的傳輸效率及數據傳輸中的出錯處理等都需要進一步地編程實現(xiàn)。