Delphi數據庫編程


轉自:http://blog.csai.cn/user1/9162/archives/2006/2955.html&http://www.k51.com.cn

1.數據集

   TDataSet該類的功能是對一個數據集的進行維護。

從面向對象講,它定義了一些數據集的基本屬性、方法和事件

基於此基礎,派生出TQuery、TTable、TStoreproc等構件。

可以說,TDataSe定義了它們的共性。

1)TDataSet是抽象類,它只是定義了數據集的操作規範,必須由它的子類實現,這些操作規範纔有意義。所以說,打開和關閉數據庫都是針對數據集的子類。

2)字段訪問:

FiledCount指出該數據集有多少個字段;RecordCount指出數據集有多少條記錄。

有以下三種方法訪問當前記錄的字段值:

a)Fields[i]:訪問當前記錄的內容,按字段的順序來訪問。

b)FindField:按照字段的名字來訪問。

c)FieldByName:按照字段的名字來訪問。

3)數據導航

a)First:移到數據集的第一條記錄

b)Last:移到數據集的最後一條記錄

c)Prior:向前移動一條記錄

d)Next:向後移動一條記錄

e)MoveBy:按照指定的步長移動記錄

4)數據編輯

a)Insert:在當前記錄插入一條記錄

b)Append:在數據集的尾部增加一條記錄

c)Edit:將當前記錄設置爲編輯狀態

d)Post:將當前記錄的修改結果,寫入數據集存盤

e)Cancel:取消當前記錄的操作

f)Delete:刪除當前記錄

g)AppandRecord:在表的尾部加一條記錄

h)InsertRecord:在當前記錄處插入一條記錄

i)SetFields:修改當前記錄的值

j)ClearFields:將當前記錄清空

5)數據查找

Locate:將當前當標定位在符合條件的記錄上。

Lookup:返回相匹配記錄的某幾個字段值。

a)第一個參數是條件字段,第二個參數是條件值,Locate的第三個參數指出在查找時是否考慮大小寫,是否部分匹配,Lookup的第三個字段是指出哪幾個字段的值需要返回。

b)兩種方法都可以多條件查找。

6)數據過濾

在前面提到的兩種查找方法只能查到一條記錄,需要下一條時,繼續查找,而數據過濾Filter可以將符合條件的記錄全部選擇出來,形成數據集的子集。

7)數據集事件

8)狀態屬性

屬性State描述這個抽象類數據集所處的狀態。

a)dsInactive:不活動狀態,這個數據集沒有打開。

b)dsBrowse:指出目前處於瀏覽狀態,這是缺少狀態。

c)dsEdit:數據集處於被編輯狀態。

d)dsInsert:處於插入狀態,已經新增了一個記錄。

e)dsSetKey:處於查找狀態。

f)dsFilter:處於數據過濾狀態。

g)dsClcFields:onCalcFields事件使用後的狀態。

以上狀態值只能在運行時獲得,狀態之間是相互轉化的。

9)屬性CanModify與Modify

10)

2.訪問表格TTable

1)指定

DataBaseName:指定要訪問的數據庫。

TableName:指定要訪問的數據庫表名。

TableType:指定所訪問數據表的類型。

2)打開關閉表

ReadOnly:該屬性指定打開的表能否修改,爲True時,禁止修改操作。

Open:打開數據表,處於瀏覽狀態

Close:關閉已打開的數據表

Active:控制表的打開與關閉,對應值True與False

Exclusive:該屬性表明數據表是否被獨佔式打開。如果爲,其它用戶就不能再打開操作了。

3)建表、刪表、清空表

FieldDefs:屬性定義數據集字段定義的信息。

CreateTable:動態創建表,但在調用此方法前,要先對以下屬性賦值

DataBaseName/TableName/TableType/FieldDefs

   DeleteTable:用於刪除一個存在的數據庫表。調用此方法前,必先關閉數據庫表。

4)索引

它表明當明顯示的數據是按照什麼排序的。

方法AddIndex:建立一個新的索引,須指定索引名稱和索引字段。

方法DeleteIndex:刪除索引。

屬性DefaultIndex:指定打開的數據庫,是否以默認的索引排序表中的數據。

屬性IndexDefs:查找索引,之前須使用方法IndexDefs.Update更新一下索引數據。

屬性IndexName:指定表內數據的顯示順序,可設置一個字段。

屬性IndexFieldNames:指定表內數據的顯示順序,可設置多個索引字段,以分號隔開。

5)查找

除了數據集提供的Locate和LookUp

SetKey……GotoKey:前者使用數據庫處於查找條件輸入狀態,然後調用後者找到相應的記錄。

SetKey……GotoNearest:字段值左邊部分與查找條件相匹配,稱爲部分匹配。

6)範圍

使用TTable可以顯示所有數據,也可以顯示一部分數據,可採用數據集的過濾,另一種是通過給索引字段設置起始條件和終結條件:

a)SetRangeStart:開始範圍。

b)SetRangeEnd:結束範圍。

c)ApplyRange:開始執行數據篩選操作。

d)CancelRange:取消範圍設置。

e)SetRange:可直接設置開始與結束範圍。

f)EditRange:修改篩選範圍。

3.查詢TQuery

該構件是向數據庫引擎BDE發送SQL語句,做爲BDE和TDataSource構件之間的接口,它完全繼承了TDataSet的屬性、方法、事件之外,還有自己獨有的屬性與方法。

a)DataBaseName:指出數據庫的名稱

b)SQL:保存SQL語句的文本,調用Open或ExecSQL方法時,被執行。

c)RequestLive:指出SQL查詢結果返回的視圖是否可以修改。

d)使用Select子句的SQL都是用Open方法打開。

e)

7)

TTable與TQuery兩者的應用:

a)TTable:用於桌面數據庫,效率最好。

b)TQuery:使用SQL數據庫。



TTable

TTQuery

TStoredProc

桌面數據庫應用

大部分的單表操作

簡單的多表操作

不支持

SQL數據庫應用

數據量小的SQL表格

大部分的操作

處理過程複雜的操作

應用程序控制權

BDE/IDAPI的控制權

異質查詢

不可以

可以

不可以

可移植性

執行效率

好~優


4.數據源TDataSource

作爲數據集與數據感知組件的橋樑。數據集只是與磁盤連接,本身並不能顯示數據庫中的信息。而數據感知組件可以提供可視化的界面,顯示數據信息但不具備訪問能力。TDataSource將兩者結合,使得用戶能對數據進行操作。

a)DataSet:指定獲取數據的數據集名稱。

b)Enable:切斷與數據集的連接(爲False值,布爾型)。

c)AutoEdit:是否將相連的數據集置於編輯狀態。

事件:

a)OnDataChange:數據集的記錄指針發生改變時觸發。

b)OnStateChange:相連的數據集組件的狀態發生改變時觸發。

c)OnUpdateData:數據集組中當前記錄將要被修改時觸發。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章