Delphi是一個優(yōu)秀的可視化軟件開發(fā)環(huán)境,并已廣泛應(yīng)用于數(shù)據(jù)庫軟件的開發(fā)。在DelphiC/S版環(huán)境中,結(jié)合其優(yōu)化的數(shù)據(jù)庫操作,以及BorlandDatabaseEngine(即:BDE,數(shù)據(jù)庫引擎),對開發(fā)客戶機(jī)/服務(wù)器系統(tǒng)下的網(wǎng)絡(luò)數(shù)據(jù)庫軟件提供了更加快速有效的途徑。在客戶機(jī)/服務(wù)器系統(tǒng)中,服務(wù)器端我們采用Microsoft SQL Server 6.0 for Windows NT作為數(shù)據(jù)庫服務(wù)器;另外,在客戶端采用Delphi編寫客戶軟件。在此,我們假定SQLServer設(shè)置完畢,并已經(jīng)啟動,僅介紹客戶端的程序編寫步驟。從以下文章中,讀者可以發(fā)現(xiàn)不需要寫一句程序,就能實現(xiàn)對SQLServer數(shù)據(jù)庫的操作了。具體步驟如下:
第一步,注冊O(shè)DBC數(shù)據(jù)源。這是至關(guān)重要的一步,否則就無法實現(xiàn)對數(shù)據(jù)庫的訪問。例如,我們定義一個可訪問SQL—Server服務(wù)器上zhb數(shù)據(jù)庫的數(shù)據(jù)源ZHB。首先,選擇SQLServer類型的數(shù)據(jù)庫,進(jìn)入“ODBCSQLServerSetup"窗口。然后,定義數(shù)據(jù)源名稱為“ZHB";定義Server為“SQL—Server";以及網(wǎng)絡(luò)路徑為“ιιSQL—Server";最后,按option命令按鈕選擇訪問的數(shù)據(jù)庫為zhb即可。
第二步,配置BDE。它是Delphi專用的數(shù)據(jù)庫引擎。既可以從Delphi程序組里啟 動,也可以從Delphi程序項的Tools菜單下啟動。Delphi在訪問SQLServer數(shù)據(jù)庫時略不同于VB。VB是直接調(diào)用ODBC來連接SQLServer的,而Delphi是首先調(diào)用BDE中的別名,別名再通過BDE中的ODBCDriver直接訪問ODBC數(shù)據(jù)源實現(xiàn)的。而在BDE的ODBCDriver中你還可以定義其他ODBC屬性,例如語言驅(qū)動程序或打開模式等等。 這無疑大大增強(qiáng)了ODBC的功能。
首先,在Drivers標(biāo)記頁中,按“NewODBCDriver"添加新的驅(qū)動程序。在添加窗口中有三欄需要填寫。第一欄SQLLinkDriver可任取一名,如:ODBC—ZHB;第二欄 DefaultODBCDriver中選擇SQLServer;在第三欄defaultDataSourceName中選擇剛才注冊的數(shù)據(jù)源ZHB。按OK確認(rèn)后就增加了一個名為ODBC—ZHB的DelphiODBC驅(qū)動程 序。在其右側(cè)的參數(shù)表中,還可以設(shè)置打開模式OPENMODE、查詢模式SQLQRYMODE、 SQL語句執(zhí)行模式SQLPASSTHRUMODE以及語言驅(qū)動程序LANGDRIVER等。接下來,在Aliases標(biāo)記頁中,按“NewAlias"命令按鈕增加一個新的別名。在增加新別名窗口中有兩欄需要填寫。第一欄為Newaliasname,可任取一個名字,如:zhbdb;這個別名就是我們要在Table控件中直接調(diào)用的數(shù)據(jù)庫名字。第二欄Aliastype選擇剛才在Drivers標(biāo)記頁中定義的ODBC—ZHB,最后按OK確認(rèn),就增加了一個名為zhbdb的別 名。這樣,Table控件可以通過別名zhbdb,別名zhbdb通過Delphi的ODBCDrivers(即:ODBC—ZHB),ODBC—ZHB再通過ODBC數(shù)據(jù)源ZHB就可連接到SQL—Server服務(wù) 器上的zhb數(shù)據(jù)庫了。以上相當(dāng)于完成了在BDE中的注冊,接下來就可以進(jìn)行控件的屬 性設(shè)置了。
第三步,設(shè)置DataAccess控件屬性以實現(xiàn)與數(shù)據(jù)庫的連接。將Table和DataSource 控件加到窗體中并修改Table控件的屬性。首先,將DatabaseName屬性改為剛才在BDE別名中定義的zhbdb。設(shè)置完databaseName屬性后,就可以從TableName屬性的下拉列表中選擇一個表的名字。這其間Table控件要完成與數(shù)據(jù)庫的連接,連接成功后,該列表中才會出現(xiàn)可選的表名。然后,將Active屬性改為true,將打開的數(shù)據(jù)庫激活,和DataSource控件建立聯(lián)系。將Exclusive屬性改為true。最后,將DataSource控件的DataSet屬性設(shè)為Table1。DataSource控件為Table控件與DataControls控件相聯(lián)系的渠道。通過以上步驟的設(shè)置,DataSource1對象就與zhb數(shù)據(jù)庫的某個表建立了聯(lián)系。以后,只要對DataSource1對象訪問,就可以實現(xiàn)對該表的操作了。
第四步,設(shè)置DataControls控件屬性以實現(xiàn)對數(shù)據(jù)庫的操作。一旦DataAccess類的控件被成功打開,處于窗口中的DataControls標(biāo)記頁的控件就可以使用了。這些控件有DBGrid、DBNavigator、DBText、DBEdit、DBMemo、DBImage、DBListBox、DBComboBox、DBCheckBox以及DBRadioGroup。這些控件只要設(shè)定他們的DataSource和DataFields屬性就可以實現(xiàn)對表的讀寫操作。
可以看出,Delphi在設(shè)計數(shù)據(jù)庫軟件方面,尤其是SQLServer數(shù)據(jù)庫方面要比VB 來得快;而且,其豐富的控件為界面的設(shè)計提供了有利幫助;另外,Delphi的真編譯使程序的執(zhí)行效率相當(dāng)高,可移植性好。這些,都是VB所欠缺的。
|