第二節(jié)瀏覽和導(dǎo)航
創(chuàng)建訪問數(shù)據(jù)庫數(shù)據(jù)的表單有兩種不同的方法。第一種方法是使用Database Form Expert(數(shù)據(jù)庫表單專家)。但不幸的是,數(shù)據(jù)庫表單專家僅僅只可以處理數(shù)據(jù)集組件中的BDE-aware(可視化BDE)子集。第二種方法是手工放置和連接所有的數(shù)據(jù)組件。
定義用戶界面(Defining the User Interface)
我們將分三步建立自己的數(shù)據(jù)瀏覽表單。第一步,為表單定義用戶界面;第二步,增加和配置數(shù)據(jù)訪問組件;第三步也是最后一步,增加數(shù)據(jù)可視化控件。
在你開始前,關(guān)閉所有打開的工程。接著進行下面的步驟:
DBNavigator1.DataSource = DataSource1
DBGrid1.DataSource = DataSource1
DataSource1.DataSet = ADOTable1
ADOTable1.Connection = ADOConnection1
ADOConnection1.ConnectionString = ...
ADOConnection1.LoginPRompt = False
ADOTable1.Table = 'Applications'
注:如在第二章中討論的一樣,ConnectionString屬性指出數(shù)據(jù)存儲的物理位置和我們的訪問方式。你可以使用與第二章同樣的連接字符串,或者通過調(diào)用連接字符串編輯器自己建立一個。
設(shè)置ADOConnection組件的LoginPrompt屬性為False,阻止數(shù)據(jù)庫登錄界面出現(xiàn)。既然我們沒有為數(shù)據(jù)庫設(shè)置任何密碼,我們也不需要登錄提示。
字段(Fields)
當(dāng)我們想為用戶提供整個記錄集(表中的數(shù)據(jù))的時候,可以使用DBGrid組件。即使我們可以使用DBGrid讓我們的用戶在表中添加、編輯和刪除記錄—但最好的方法是為表中的每個字段使用Field(字段)對象。字段對象多用于應(yīng)用程序中數(shù)據(jù)顯示和編輯的控制。通過使用Fields Editor(字段編輯器),我們可以為表中的每一列設(shè)置固定的字段對象列表。字段編輯器可通過雙擊DataSet組件調(diào)用。為了給數(shù)據(jù)集的固定字段列表增加字段,可以右擊列表并選擇Add Fields(增加字段)。
除了為用戶顯示表中的所有數(shù)據(jù)(在DBGrid中)外,我們還需要使用field-oriented(面向字段)的數(shù)據(jù)可視化組件如:編輯框。例如,DBEdit組件是TEdit類的數(shù)據(jù)可視化版本。它是任何數(shù)據(jù)輸入程序的積木。
在表單中放置DBEdit并把它與表的字段相連的最簡單的方法如下:
當(dāng)你在標(biāo)簽單上放下Name字段時,Delphi會在上面放置一個Label和一個DBEdit組件。Label組件的Caption(標(biāo)題)與被拖動字段的DisplayLabel(顯示標(biāo)簽)屬性一樣。DBEdit組件通過它的DataSource屬性與數(shù)據(jù)集的數(shù)據(jù)源相連。如果你從字段編輯器中選擇多個字段并把它放置在表單上,Delphi將在表單上放置同樣多的Label/DBEdit組件。
“它活了!”(It's alive)
OK,我們現(xiàn)在所需要做的是激活連接并滾動記錄。一個數(shù)據(jù)集(ADOTable)組件的Active(激活)屬性指出我們是否與一個表相連。設(shè)置Active為True或調(diào)用Open方法將使ADOConnection組件的CONonnected屬性為True—并在相關(guān)的數(shù)據(jù)可視化控件中顯示數(shù)據(jù)。
首先、接著、最后......(First, Move by, Last,...)
現(xiàn)在我們作最后的準(zhǔn)備。接下來我們了解一下怎樣瀏覽記錄集。
DBNavigator組件為瀏覽記錄集提供了一個友好而簡單的工具。除了它的瀏覽能力外,DBNavigator還提供了方法操作數(shù)據(jù),如:插入、刪除或取消改變。例如,如果我們點擊Delete(刪除)按鈕,相應(yīng)的記錄將會從記錄集中刪除。每個按鈕都是可選的,你可以隨意的組合和匹配它們。
通過按鈕設(shè)置,我們可以跳到最后一個記錄或移到上一個記錄。例如,點擊Last(最后)按鈕設(shè)置當(dāng)前記錄為記錄集的最后一條記錄并使Last(最后)和Next(下一個)按鈕失效。點擊Last按鈕與調(diào)用數(shù)據(jù)集的Last方法具有相同的功效。
需要注意的是,DBNavigator不能處理的瀏覽操作之一是按一定的數(shù)量間隔對記錄進行向前或向后的移動。數(shù)據(jù)集的MoveBy方法被用于定位相對于記錄集當(dāng)前記錄的任一記錄的位置。
這就是本章。現(xiàn)在我們將準(zhǔn)備學(xué)習(xí)數(shù)據(jù)集的編輯和查詢,這將在本教程的接下來的章節(jié)中進行說明......
2002年12月26日 20:49
新聞熱點
疑難解答
圖片精選