15.3.4 數(shù)據(jù)集中的數(shù)據(jù)維護(hù)
數(shù)據(jù)集中的數(shù)據(jù)維護(hù)主要包括數(shù)據(jù)記錄的修改,插入和刪除。Delphi為數(shù)據(jù)集部件提供了相應(yīng)的方法用于其中的數(shù)據(jù)維護(hù)。這些方法如表15.所示。
表15.3 Delphi用于數(shù)據(jù)維護(hù)的方法
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
方 法 名 功 能
──────────────────────────────
Edit 將數(shù)據(jù)集置為編輯狀態(tài)
──────────────────────────────
Append 投寄所有被修改的記錄,將記錄指針移到表中的最后
一條記錄,且將數(shù)據(jù)集置為插入狀態(tài)
──────────────────────────────
Insert 投寄所有被修改的記錄將數(shù)據(jù)集置為插入狀態(tài)
──────────────────────────────
Post 將插入的新記錄和修改的記錄寫回磁盤上的數(shù)據(jù)庫表,
即投寄,當(dāng)投寄成功時(shí)數(shù)據(jù)集回到瀏覽狀態(tài),若投寄
不成功數(shù)據(jù)集仍然保持原有狀態(tài)
──────────────────────────────
Cancel 取消當(dāng)前的操作且將數(shù)據(jù)集置為瀏覽狀態(tài)
──────────────────────────────
Delete 刪除當(dāng)前記錄指針?biāo)诘挠涗浨覍?shù)據(jù)集置為瀏覽狀態(tài)
──────────────────────────────
AppendRecord 在表的最后插入一條新記錄,記錄的各個(gè)字段值作為
AppendRecord的參數(shù)傳遞給新記錄
──────────────────────────────
InsertRecord 在當(dāng)前指針?biāo)谟涗浀暮竺娌迦胍粭l新記錄, 記錄的
各個(gè)字段值作為InsertRecord的參數(shù)傳遞給新記錄。
──────────────────────────────
SetRecords 修改當(dāng)前記錄,字段名和相應(yīng)的字段值作為SetRecords
的參數(shù)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Edt方法:如果應(yīng)用程序想對(duì)數(shù)據(jù)集中的數(shù)據(jù)記錄進(jìn)行修改,我們必須要將數(shù)據(jù)集設(shè)置成編輯狀態(tài)。調(diào)用數(shù)據(jù)集部件的Edit方法便可以將數(shù)據(jù)集置成編輯狀態(tài),當(dāng)數(shù)據(jù)集已經(jīng)處在編輯狀態(tài)時(shí),調(diào)用Edit方法不會(huì)產(chǎn)生作用。當(dāng)數(shù)據(jù)集處于編輯狀態(tài)時(shí),移動(dòng)記錄指針或調(diào)用post方法都可以將當(dāng)前記錄的修改寫回到磁盤數(shù)據(jù)庫表中。在程序中, Edit方法和post方法常常配合在一起使用,用于修改表中的記錄。如:
Table1.Edit;
Tabel1.FieldByName('CustNo').Asstring := '1234';
Table1.st;
在上述這一段程序代碼中,第一行程序是將Table1置成編輯狀態(tài),第二行程序是對(duì)當(dāng)前記錄指針?biāo)诘挠涗浀腃ustNo字段的值修改成'1234',第二行程序是調(diào)用post方法將對(duì)當(dāng)前記錄的修改寫回?cái)?shù)據(jù)庫表。
Append方法和Insert 方法:這兩個(gè)方法都是將數(shù)據(jù)集部件置成插入狀態(tài),以在表中插入新記錄,Insert方法是在當(dāng)前指針位置的記錄后面插入一打新記錄,Append方法是在表的尾部插入一打新記錄,不過這要注意,無論用戶是調(diào)用Insert方法還是Append方法插入新記錄,增加記錄到一個(gè)具有索引的表中時(shí),都是按照索引順序?qū)懭肫湮恢,也就是說對(duì)于索引表格Insert方法和Append方法的作用是一樣的,Append僅適用于沒有索引的表。Insert方法和Append方法實(shí)際上是將數(shù)據(jù)集置成插入狀態(tài),并且插入一條空白記錄,要真正插入一條新記錄,我們必須在調(diào)用Insert或Append方法之后,還要給新記錄的各個(gè)字段賦值,最后調(diào)用post方法,將插入的記錄寫回?cái)?shù)據(jù)庫表。調(diào)用這兩種方法插入新記錄的一般步驟如下:
With tabe1 DO
Begin
Insert; {調(diào)用Insert方法,插入一條空記錄}
<為記錄的各字段賦值>
Post;
End;
Post方法:數(shù)據(jù)集中的記錄被修改或插入新記錄時(shí)調(diào)用post方法將數(shù)據(jù)集的修改寫回到數(shù)據(jù)庫表。根據(jù)數(shù)據(jù)集所處的狀態(tài)不同,post方法所產(chǎn)生的作用和效果是不一樣的:
● 當(dāng)數(shù)據(jù)集處于編輯狀態(tài)時(shí),調(diào)用post方法,將當(dāng)前記錄的修改寫回?cái)?shù)據(jù)庫表
● 當(dāng)數(shù)據(jù)集處于插入狀態(tài)時(shí),調(diào)用post方法,將插入的新記錄寫回?cái)?shù)據(jù)庫表
● 當(dāng)數(shù)據(jù)集處于SetKey狀態(tài)時(shí),調(diào)用post方法,將數(shù)據(jù)集置成瀏覽狀態(tài)(Browse狀態(tài))
post方法的調(diào)用既可以顯式地調(diào)用,也可以隱含地調(diào)用,當(dāng)數(shù)據(jù)集處于編輯狀態(tài)或插入狀態(tài)時(shí),當(dāng)移動(dòng)記錄指針時(shí),Delphi會(huì)隱含地調(diào)用post方法,將將當(dāng)前記錄的修改寫回?cái)?shù)據(jù)庫表,在程序調(diào)用Insert方法或Append方法時(shí),也會(huì)隱含地調(diào)用Post方法,將先前的數(shù)據(jù)集的修改寫回?cái)?shù)據(jù)庫表。
相關(guān)推薦:2010年9月計(jì)算機(jī)等級(jí)考試試題及答案解析專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |