首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載 | ||
![]() |
2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試 MPA考試 | 中科院 |
|
![]() |
四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT 新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語 |
|
![]() |
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證 華為認證 | Java認證 |
|
![]() |
公務員 | 報關員 | 銀行從業資格 | 證券從業資格 | 期貨從業資格 | 司法考試 | 法律顧問 | 導游資格 報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師 人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業資格 | 廣告師職業水平 駕駛員 | 網絡編輯 |
|
![]() |
衛生資格 | 執業醫師 | 執業藥師 | 執業護士 | |
![]() |
會計從業資格考試(會計證) | 經濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師 注冊資產評估師 | 高級會計師 | ACCA | 統計師 | 精算師 | 理財規劃師 | 國際內審師 |
|
![]() |
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監理工程師 | 安全工程師 質量工程師 | 物業管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產估價師 | 土地估價師 | 巖土師 設備監理師 | 房地產經紀人 | 投資項目管理師 | 土地登記代理人 | 環境影響評價師 | 環保工程師 城市規劃師 | 公路監理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師 |
|
![]() |
繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲 |
15.3.5 數據集部件與數據瀏覽部件的連接
數據集部件TTabel和TQuery具有三個方法,DisableControls 方法、EnableControls方法、Refresh方法用于控制數據集部件和與其相連的數據瀏覽部件之間的連接,以及控制數據瀏覽部件的顯示。在用戶修改和更新以及遍歷數據庫表中的記錄時,調用DisableControls方法具有重要意義,調用DisbaleControls方法以切斷TTable或TQuery部件與數據瀏覽部件的連接,使數據瀏覽部件暫時失效,否則,在對TTable或TQuery部件的每次修改之后,窗體中所有與它們相連的數據瀏覽部件都要更新其顯示內容,這親顯然會減慢處理速度。當遍歷表中的記錄時記錄指針每移動一下,窗體中的數據瀏覽部件也隨之更新一下其中的顯示內容,在屏幕上產生閃爍。
EnableControls方法的作用與DisbaleControls方法的作用是相反的,調用EnableControls方法,使TTable或TQuery部件恢復與數據瀏覽部件的連接,使暫時失效的數據瀏覽部件恢復到正常顯示表中記錄信息的狀態。
Refresh方法用于刷新數據瀏覽部件中的顯示。在調用Refresh方法時,必須要確保TTable或TQuery部件是打開的。當數據集中的記錄被修改之后,調用Refresh方法,數據瀏覽部件中顯示的信息也隨之改變。
15.3.6 數據集部件的事件
數據集部件TTable或TQuery具有很多的事件。為這些事件編寫相應的程序代碼可以進行有效性驗證、計算可計算字段的值、確認對數據庫表的多種操作等等。這些事件及其描述如表15.4所示。
表15.4 數據集部件常用的事件
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
事 件 描 述
───────────────────────────────────
BeforeOpen,Afteropen 在數據集部件被打開之前/之后被觸發
───────────────────────────────────
BeforeClose,Afterclose 在數據集部件被關閉之前/之后被觸發
───────────────────────────────────
BeforeInsert,AfterInsert 在數據集部件進入插入狀態之前/之后被觸發
───────────────────────────────────
BeforeEdit,AfterEdit 在數據集部件被編輯之前/之后被觸發
───────────────────────────────────
BeforePost,AfterPost 在數據集部件投寄被修改的記錄之前/之后被觸發
───────────────────────────────────
BeforeCancel,AfterCancel 在數據集部件取消前一步操作之前/之后被觸發
───────────────────────────────────
BeforeDelete,AfterDelete 在數據集部件刪除當前記錄之前/之后被觸發
───────────────────────────────────
OnNewRecord 當建立一條新記錄時被觸發
───────────────────────────────────
OnCalcFields 當為表中的計算字段計算字段值時被觸發
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
15.4 TTable部件及應用
在前一節里我們介紹了數據集部件TTable 和TQuery 的共同的一些屬性和方法。TTable部件是Delphi數據庫編程中要經常使用的最重要的部件之一,它是數據庫應用程序訪問數據庫時必須使用的數據集部件之一,在這一節里,我們重點介紹TTable部件特有的屬性和方法,TTable部件所有的屬性、方法和事件都可以在聯機幫助中查到。
15.4.1 TTabel部件主要的屬性
DatabaseName屬性和TableName屬性:
DatabaseName屬性是說明數據庫應用程序所操作的數據庫的名字,它可以是由BDE定義的數據庫的別名、顯式說明的數據庫文件所在的磁盤路徑或者由TDatabase部件定義的一個數據庫名。DatabaseName屬性常常是一個由BDE定義的數據庫的別名。使用由BDE定義的數據庫的別名代替數據庫實際所在的路徑和名字,好處是當實際的數據庫存放的位置發生變化時,只需利用BDE簡單地設置一下該數據庫的別名,而數據庫應用程序無需修改。有關BDE的使用請參看BDE的設置應用。TabelName屬性用以說明當前TTable部件所連接的實際的數據庫表。這兩個屬性一般都在設計階段指定,當然在程序運行過程中也可以設置,但是要修改這兩個屬性時,必須要在TTabel的Active屬性為False時進行,當TTable的Active屬性為True時,這兩個屬性是不能被修改和設置的。
TableType屬性:
該屬性說明與TTable部件相連接的數據庫表的類型。當TableType屬性設置成Default時,該屬性所說明的數據庫表的類型由數據庫文件的擴展名決定。
● 若數據庫文件的擴展名為.DB或沒有擴展名,表的類型是Paradox表
● 若數據庫文件的擴展名為.DBF時,表的類型是dBASE表
● 若數據庫文件的擴展名為.TXT時,表的類型是ASCII表
如果TableType屬性不設定為Default,那么與TTable 部件相連的數據庫表的類型由TableType中的設置的值決定,不用考慮數據庫文件的擴展名。
KeyExclusive屬性:
該屬性的一個作用是說明在數據庫表中查找記錄時,將記錄移到與查找值相匹配的記錄處還是將記錄指針移到與查找值相匹配的記錄后面一條記錄處。該屬性是布爾型變量,當它的值為False時(缺省情況下為False),將記錄指針移到相匹配的記錄處,為True時,將記錄指針移到相匹配記錄的后面一條記錄處。該屬性另一個作用是在表中指定檢索范圍時,用來說明是否包括滿足過濾條件的邊界記錄。當KeyExclusive的值為False時,檢索范圍包括邊界記錄,否則不包括邊界記錄,有關詳細的操作請參看“限定表中記錄的檢索范圍”。
IndexFields屬性和IndexFieldsCount屬性:
IndexFields的屬性值是數據庫表中字段名列表,它包含與TTable部件相連的數據庫表中的全部索引字希。IndexFieldsCount屬性說明表中索引字段的個數。這兩個屬性值都是只讀的,只有在程序運行過程中可用。
IndexName屬性和IndexFieldNames屬性:
IndexName屬性中存放著在建立數據庫表時為數據庫表定義的所有輔助索引名,它是一個輔助索引名列表,是只讀屬性。IndexFieldNames屬性指定用于數據庫表索引排序的字段名,多個字段名之間用分號隔開。例如對Customer.DB表中的客戶記錄按郵政編碼ZipCode和客戶號碼CustNo排序時可以設定IndexFieldNames的值為:
ZipCode ; CustNo
在IndexFieldNames屬性中指定的字段必須存在于相應的數據庫表中,否則會導致錯誤。IndexName和IndexFieldName是互斥的,每次只能指定其中一個屬性的值,不能同時為兩個屬性都指定屬性值。
Exclusive屬性:
該屬性是一個布爾型屬性,它標明是否以共享方式打開數據庫表,如果Exclusive的值為True,當打開一個數據庫表時,其他用戶就不能訪問該表了,若Exclusive的值為False,將以共享方式打開一個數據庫表。顯然不能將其他用戶正在訪問的表以互斥方式打開(設定Exclusive的值為True)。對于SQL數據庫服務器上的數據庫表,當以互斥方式被一個用戶打開時,其他用戶可以讀取該表中的數據,但不能修改表中的數據,當然有些數據庫服務器不支持這種方式,這要具體參看有關的數據庫服務器的文檔。
ReadOnly屬性和CanModify屬性:
這兩個屬性都是布爾型屬性,ReadOnly屬性決定用戶是否能夠對表中的數據進行讀寫。ReadOnly為True 時,用戶只能讀取表中的數據,ReadOnly為False時,用戶可以讀寫表中的數據(假設數據庫已授權用戶能夠讀寫其中的數據庫表)。CanModify屬性是一個只讀屬性,用戶不能夠修改其屬性值,它反映了用戶對數據庫表擁有的實際特權,當ReadOnly為True時CanModify將自動地被置為False,當ReadOnly為False時,如果數據庫允許用戶對表進行讀寫時,CanModify為True,否則CanModify為False。當CanModify為False時,數據庫表是只讀的,但不能將其置成編輯狀態或插入狀態;當CanModify屬性為True時,雖然數據庫表對應的數據集部件可以置成編輯和插入狀態,但是這并不意味著用戶能夠插入和修改表中的數據,因為這還要受到其他因素的限制,如用戶對SQL數據庫服務器的訪問權限等的限制。
TTable部件還有其他一些屬性請參看聯機幫助
相關推薦:2010年9月計算機等級考試試題及答案解析專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |