人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

第15章 數(shù)據(jù)訪問部件的應(yīng)用及編程(二)

第15章 數(shù)據(jù)訪問部件的應(yīng)用及編程(二)

更新時間:2022-07-11 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

15.3.6 數(shù)據(jù)集部件的事件 

   數(shù)據(jù)集部件TTable或TQuery具有很多的事件。為這些事件編寫相應(yīng)的程序代碼可以進(jìn)行有效性驗證、計算可計算字段的值、確認(rèn)對數(shù)據(jù)庫表的多種操作等等。這些事件及其描述如表15.4所示。 

  表15.4 數(shù)據(jù)集部件常用的事件

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  事 件 描 述

  ───────────────────────────────────

  BeforeOpen,Afteropen 在數(shù)據(jù)集部件被打開之前/之后被觸發(fā)

  ───────────────────────────────────

  BeforeClose,Afterclose 在數(shù)據(jù)集部件被關(guān)閉之前/之后被觸發(fā)

  ───────────────────────────────────

  BeforeInsert,AfterInsert 在數(shù)據(jù)集部件進(jìn)入插入狀態(tài)之前/之后被觸發(fā)

  ───────────────────────────────────

  BeforeEdit,AfterEdit 在數(shù)據(jù)集部件被編輯之前/之后被觸發(fā)

  ───────────────────────────────────

  BeforePost,AfterPost 在數(shù)據(jù)集部件投寄被修改的記錄之前/之后被觸發(fā)

  ───────────────────────────────────

  BeforeCancel,AfterCancel 在數(shù)據(jù)集部件取消前一步操作之前/之后被觸發(fā)

  ───────────────────────────────────

  BeforeDelete,AfterDelete 在數(shù)據(jù)集部件刪除當(dāng)前記錄之前/之后被觸發(fā)

  ───────────────────────────────────

  OnNewRecord 當(dāng)建立一條新記錄時被觸發(fā)

  ───────────────────────────────────

  OnCalcFields 當(dāng)為表中的計算字段計算字段值時被觸發(fā)

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

  15.4 TTable部件及應(yīng)用 

  在前一節(jié)里我們介紹了數(shù)據(jù)集部件TTable 和TQuery 的共同的一些屬性和方法。TTable部件是Delphi數(shù)據(jù)庫編程中要經(jīng)常使用的最重要的部件之一,它是數(shù)據(jù)庫應(yīng)用程序訪問數(shù)據(jù)庫時必須使用的數(shù)據(jù)集部件之一,在這一節(jié)里,我們重點介紹TTable部件特有的屬性和方法,TTable部件所有的屬性、方法和事件都可以在聯(lián)機(jī)幫助中查到。 

  15.4.1 TTabel部件主要的屬性 

  DatabaseName屬性和TableName屬性:

  DatabaseName屬性是說明數(shù)據(jù)庫應(yīng)用程序所操作的數(shù)據(jù)庫的名字,它可以是由BDE定義的數(shù)據(jù)庫的別名、顯式說明的數(shù)據(jù)庫文件所在的磁盤路徑或者由TDatabase部件定義的一個數(shù)據(jù)庫名。DatabaseName屬性常常是一個由BDE定義的數(shù)據(jù)庫的別名。使用由BDE定義的數(shù)據(jù)庫的別名代替數(shù)據(jù)庫實際所在的路徑和名字,好處是當(dāng)實際的數(shù)據(jù)庫存放的位置發(fā)生變化時,只需利用BDE簡單地設(shè)置一下該數(shù)據(jù)庫的別名,而數(shù)據(jù)庫應(yīng)用程序無需修改。有關(guān)BDE的使用請參看BDE的設(shè)置應(yīng)用。TabelName屬性用以說明當(dāng)前TTable部件所連接的實際的數(shù)據(jù)庫表。這兩個屬性一般都在設(shè)計階段指定,當(dāng)然在程序運行過程中也可以設(shè)置,但是要修改這兩個屬性時,必須要在TTabel的Active屬性為False時進(jìn)行,當(dāng)TTable的Active屬性為True時,這兩個屬性是不能被修改和設(shè)置的。

  TableType屬性:

  該屬性說明與TTable部件相連接的數(shù)據(jù)庫表的類型。當(dāng)TableType屬性設(shè)置成Default時,該屬性所說明的數(shù)據(jù)庫表的類型由數(shù)據(jù)庫文件的擴(kuò)展名決定。

  ● 若數(shù)據(jù)庫文件的擴(kuò)展名為.DB或沒有擴(kuò)展名,表的類型是Paradox表

  ● 若數(shù)據(jù)庫文件的擴(kuò)展名為.DBF時,表的類型是dBASE表

  ● 若數(shù)據(jù)庫文件的擴(kuò)展名為.TXT時,表的類型是ASCII表 

  如果TableType屬性不設(shè)定為Default,那么與TTable 部件相連的數(shù)據(jù)庫表的類型由TableType中的設(shè)置的值決定,不用考慮數(shù)據(jù)庫文件的擴(kuò)展名。

  KeyExclusive屬性:

  該屬性的一個作用是說明在數(shù)據(jù)庫表中查找記錄時,將記錄移到與查找值相匹配的記錄處還是將記錄指針移到與查找值相匹配的記錄后面一條記錄處。該屬性是布爾型變量,當(dāng)它的值為False時(缺省情況下為False),將記錄指針移到相匹配的記錄處,為True時,將記錄指針移到相匹配記錄的后面一條記錄處。該屬性另一個作用是在表中指定檢索范圍時,用來說明是否包括滿足過濾條件的邊界記錄。當(dāng)KeyExclusive的值為False時,檢索范圍包括邊界記錄,否則不包括邊界記錄,有關(guān)詳細(xì)的操作請參看“限定表中記錄的檢索范圍”。

  IndexFields屬性和IndexFieldsCount屬性:

  IndexFields的屬性值是數(shù)據(jù)庫表中字段名列表,它包含與TTable部件相連的數(shù)據(jù)庫表中的全部索引字希。IndexFieldsCount屬性說明表中索引字段的個數(shù)。這兩個屬性值都是只讀的,只有在程序運行過程中可用。

  IndexName屬性和IndexFieldNames屬性:

  IndexName屬性中存放著在建立數(shù)據(jù)庫表時為數(shù)據(jù)庫表定義的所有輔助索引名,它是一個輔助索引名列表,是只讀屬性。IndexFieldNames屬性指定用于數(shù)據(jù)庫表索引排序的字段名,多個字段名之間用分號隔開。例如對Customer.DB表中的客戶記錄按郵政編碼ZipCode和客戶號碼CustNo排序時可以設(shè)定IndexFieldNames的值為:

  ZipCode ; CustNo

  在IndexFieldNames屬性中指定的字段必須存在于相應(yīng)的數(shù)據(jù)庫表中,否則會導(dǎo)致錯誤。IndexName和IndexFieldName是互斥的,每次只能指定其中一個屬性的值,不能同時為兩個屬性都指定屬性值。

  Exclusive屬性:

  該屬性是一個布爾型屬性,它標(biāo)明是否以共享方式打開數(shù)據(jù)庫表,如果Exclusive的值為True,當(dāng)打開一個數(shù)據(jù)庫表時,其他用戶就不能訪問該表了,若Exclusive的值為False,將以共享方式打開一個數(shù)據(jù)庫表。顯然不能將其他用戶正在訪問的表以互斥方式打開(設(shè)定Exclusive的值為True)。對于SQL數(shù)據(jù)庫服務(wù)器上的數(shù)據(jù)庫表,當(dāng)以互斥方式被一個用戶打開時,其他用戶可以讀取該表中的數(shù)據(jù),但不能修改表中的數(shù)據(jù),當(dāng)然有些數(shù)據(jù)庫服務(wù)器不支持這種方式,這要具體參看有關(guān)的數(shù)據(jù)庫服務(wù)器的文檔。

  ReadOnly屬性和CanModify屬性:

  這兩個屬性都是布爾型屬性,ReadOnly屬性決定用戶是否能夠?qū)Ρ碇械臄?shù)據(jù)進(jìn)行讀寫。ReadOnly為True 時,用戶只能讀取表中的數(shù)據(jù),ReadOnly為False時,用戶可以讀寫表中的數(shù)據(jù)(假設(shè)數(shù)據(jù)庫已授權(quán)用戶能夠讀寫其中的數(shù)據(jù)庫表)。CanModify屬性是一個只讀屬性,用戶不能夠修改其屬性值,它反映了用戶對數(shù)據(jù)庫表擁有的實際特權(quán),當(dāng)ReadOnly為True時CanModify將自動地被置為False,當(dāng)ReadOnly為False時,如果數(shù)據(jù)庫允許用戶對表進(jìn)行讀寫時,CanModify為True,否則CanModify為False。當(dāng)CanModify為False時,數(shù)據(jù)庫表是只讀的,但不能將其置成編輯狀態(tài)或插入狀態(tài);當(dāng)CanModify屬性為True時,雖然數(shù)據(jù)庫表對應(yīng)的數(shù)據(jù)集部件可以置成編輯和插入狀態(tài),但是這并不意味著用戶能夠插入和修改表中的數(shù)據(jù),因為這還要受到其他因素的限制,如用戶對SQL數(shù)據(jù)庫服務(wù)器的訪問權(quán)限等的限制。

  TTable部件還有其他一些屬性請參看聯(lián)機(jī)幫助

  15.4.2 TTable部件的方法及應(yīng)用

  

  15.4.2.1 設(shè)定數(shù)據(jù)庫表的使用范圍

  

  在我們實際應(yīng)用中的數(shù)據(jù)庫表中常常存放著大量的數(shù)據(jù)信息,其中包含著很多的記錄,而我們的應(yīng)用程序可能只需對其中一部分記錄進(jìn)行操作,因此,為應(yīng)用程序指定一個使用范圍就顯得特別重要了,為方便有效地指定數(shù)據(jù)庫表的使用范圍Delphi為TTable部件提供了下列方法供用戶使用:

  ● SetRangeStart和EditRangeStart方法

  ● SetRangeEnd和EditRangeEnd方法

  ● SetRange([Start Values],[End Values])方法

  ● ApplyRange方法

  ● CancelRange方法

  

  1. SetRangeStart方法

  用于指定檢索范圍的起始記錄,調(diào)用SetRangeStart方法之后,可以為起始記錄的一個或多個字段指定相應(yīng)的字段值。SetRangeEnd方法用于指定檢索范圍的結(jié)束記錄,調(diào)用SetRangeEnd方法之后,可以為結(jié)束記錄的一個或多個字段指定相應(yīng)的字段值。

  

  2. SetRange方法

  SetRange方法包含了SetRangeStart和SetRangeEnd方法的功能,它可以同時指定檢索范圍的起始和結(jié)束記錄,起始記錄和結(jié)束記錄的字段值以數(shù)組形式送給SetRange,其基本形式是:

  SetRange([起始值],[結(jié)束值])

[1] [2] [3]  下一頁

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 柳江县| 玛多县| 沈阳市| 南雄市| 玉龙| 峨边| 邵阳市| 南郑县| 苏州市| 陈巴尔虎旗| 广东省| 巧家县| 都匀市| 吉木乃县| 资源县| 福贡县| 青神县| 桂林市| 新郑市| 临江市| 南岸区| 仁寿县| 宁海县| 孝感市| 富宁县| 辽宁省| 西贡区| 荥经县| 抚宁县| 高安市| 裕民县| 贡山| 中江县| 凭祥市| 马山县| 云霄县| 华安县| 仙游县| 新和县| 湾仔区| 邵东县|