程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 第十五章-數據訪問部件的應用及編程(二)(2)

第十五章-數據訪問部件的應用及編程(二)(2)

編輯:Delphi

15.4.2 TTable部件的方法及應用

15.4.2.1 設定數據庫表的使用范圍

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

● SetRangeStart和EditRangeStart方法

● SetRangeEnd和EditRangeEnd方法

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

● ApplyRange方法

● CancelRange方法

1. SetRangeStart方法

用於指定檢索范圍的起始記錄,調用SetRangeStart方法之後,可以為起始記錄的一個或多個字段指定相應的字段值。SetRangeEnd方法用於指定檢索范圍的結束記錄,調用SetRangeEnd方法之後,可以為結束記錄的一個或多個字段指定相應的字段值。

2. SetRange方法

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

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

3. ApplyRange方法

根據SetRangeStart,SetRangeEnd或SetRange方法說明的檢索范圍的起始和結束記錄,具體設定一個檢索范圍,調用ApplyRange方法之後,應用程序只能對檢索范圍內的記錄進行有關的操作。

 

4. CancelRange方法

CancelRange方法的作用與ApplyRange方法的作用是相反的,這是取消為表設定的檢索范圍,調用CancelRange方法之後應用程序可以對表中全部記錄進行有關的操作。

在這裡要注意的是:如果我們使用的是paradox表或dBASE表,在調用SetRangeStart,SetRangeEnd以及SetRange方法時,只能為表中的索引字段或定義的索引指定相應的字段值,以設定檢索范圍。如果使用SQL數據庫服務器中的數據庫表,可以為IndexFieldNames屬性中指定的字段指定相應的字段值。

例如:假設Table1與Customer.DB表相連,Customer.DB中一個索引字段是CustNo,同時應用窗體中有兩個編輯框StartVal和EndVal用於輸入起始、結束記錄的字段CustNo的值,下面的程序代碼便可以為我們設定一個檢索范圍:

Tabel1.SetRangeStart; {指定檢索范圍的起始記錄}

Tabel1CustNo.AsString:= StartVal.Text {為起始記錄的CustNo字段指定字段值}

Tabel1.SetRangeEnd; {指定檢索范圍的結束記錄}

if EndVal.Text <> ' ' then

Tabel1CustNo.AsString := EndVal.Text; {為結束記錄的CustNo 字段指定字段值}

Tabel1.ApplyRange; {根據檢索范圍的起始、結束記錄設定檢索范圍}

注意上面的程序代碼,在為結束記錄的CustNo字段指定字段值時,首先檢查EndVal的值是否為空,如果EndVal的值為空,那麼設定的檢索范圍沒有包含一條記錄,因為沒有任何記錄的字段值小於NIL;如果StartVal的值為空,那麼檢索范圍將從表中的第一條記錄開始,因為表中任何記錄的字段值都大於空(NIL)。

上述代碼可以用SetRange方法改寫成:

If EndVal.Text <>' ' then

Tabel1.SetRane([StartVal.Text].[EndVal.Text]);

Table1.ApplyRange;

EditRangeStart和EditRangeEnd方法的使用完全類似於SetRangeStart和SetRangeEnd方法,只是調這兩個方法是設定一個可編輯的范圍。

又如:假設一個表中的一個索引包含兩個字段LastName和FirstName,我們為索引中的一個字段或多個字段指定相應的字段值,設定數據庫表的使用范圍。

Table1.SetRangeStart;

Table1.FieldByName('LastName').Asstring := 'Smith';

Table1.SetRangeEnd;

Tabel1.ApplyRange;

上述代碼設定的范圍包括LastName字段的值大於或等於Smith的所有記錄。而下面的代碼設定的范圍則包括LastName字段的值大於或等於Smith且FirstName字段的值大於或等於'J'的記錄。

Table1.SetRangeStart;

Table1.FieldByName('LastName').Asstring := 'Smith';

Table1.FieldByName('FirstName').Asstring := 'J';

Table1.SetRangeEnd;

Tabel1.ApplyRange;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved