轉自:http://blog.csai.cn/user1/9162/archives/2006/2955.html&http://www.k51.com.cn1.數據集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數據庫。
4.數據源TDataSource 作爲數據集與數據感知組件的橋樑。數據集只是與磁盤連接,本身並不能顯示數據庫中的信息。而數據感知組件可以提供可視化的界面,顯示數據信息但不具備訪問能力。TDataSource將兩者結合,使得用戶能對數據進行操作。 a)DataSet:指定獲取數據的數據集名稱。 b)Enable:切斷與數據集的連接(爲False值,布爾型)。 c)AutoEdit:是否將相連的數據集置於編輯狀態。 事件: a)OnDataChange:數據集的記錄指針發生改變時觸發。 b)OnStateChange:相連的數據集組件的狀態發生改變時觸發。 c)OnUpdateData:數據集組中當前記錄將要被修改時觸發。 |
Delphi數據庫編程
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.