Delphi資料庫程式設計教程(九) (轉)
第五章 資料集資料的後面.....
第一節 資料的狀態
當用和ADO開發應用時,大部分工作用於學習資料集的幫助文件。。為了建立一個基於ADO的程式,Delphi提供了幾個資料集元件:TAdoTable、TAdoQuery和其他的元件。它們用於獲得、呈現和修改資料庫表或查詢的資料。
在本教程的第五章,我們將透過介紹大多數感興趣的資料集元件的一些屬性、事件和方法來切實瞭解怎樣呈現、瀏覽和讀取資料。
挑選、設定、連線和獲得(Pick, set, connect and get)
既然已到了第五章,你應該已經熟悉建立一個資料庫表單所需的步驟。在第四章我們已手工建立了一個簡單的資料瀏覽表單。本章將用它繼續討論。
到現在為止,我們僅使用了一個(ADO)資料集元件:TAdoTable。瞭解TADOQuery和TADODataSet(作為資料集元件)對同樣的方法和事件使用同樣的設定是很重要的。
芝麻開門;芝麻關門(Open Sesame ; Close Sesame)
Delphi資料庫開發的很重要的特徵之一是:Delphi可以在時讓我們對資料進行處理。你可以回憶一下—在前一章,我們使用Active屬性在設計時就開啟了與資料的活動連線。
不難理解,在開始處理表的資料之前,程式必須首先開啟資料集。Delphi有兩種方法實現此功能。第一是如我們已看到的,可以在設計或執行時設定Active屬性為True;第二是我們可以在執行時Open方法。例如,增加如下的程式碼到表單的OnCreate事件控制程式碼中,從而得到ADOTable元件的資料。
ADOTable1.Open;
注:每個ADO資料集都可透過它自己的ConnectionString屬性或一個ADOConnection元件(和它的ConnectionString)訪問資料庫的資料。如果ADOTable1元件與ADOConnection1元件相連(推薦使用此方式),開啟ADOTable將啟用相應的ADOConnection元件。ADOConnection提供兩個將被的事件:OnWillConnect和OnConnectComplete。
Open方法設定Active屬性為True並啟用連線。當我們處理完連線時,我們可以設定Active屬性為False或呼叫Close方法斷開連線。通常我們都在表單的OnClose事件控制程式碼中放入對Close方法的呼叫:
ADOTable1.Close;
在繼續之前,知道對資料集方法和屬性的處理依賴於對資料當前狀態的瞭解是至關緊要的。簡單地說,資料集的State(狀態)屬性決定任何時候資料集上的什麼行為可以發生或不發生。
How are you doing?
如果資料集是關閉的,資料的State將顯示為Inactive(非啟用)連線。當連線是關閉時,沒有操作、行為或方法可以對資料實施。我們第一次開啟資料集的連線時,資料集處於預設的Browse(瀏覽)狀態。你應該始終了解“你的”資料所處的狀態。例如,當我們把資料集連線到Grid時,可以看到潛在的資料集(或記錄集),但要想改變某些資料就必須把State設定為Edit。
當程式處理資料時,瞭解資料集狀態在不停的改變時非常重要的。例如,當在DBGrid中瀏覽資料時(Browse狀態),使用者開始編輯記錄,狀態將自動改變為Edit。當然,當設定資料視覺化(DBGrid、DBEdit)的AutoEdit屬性為True時,這是它們預設的行為。
但是,我們怎樣得到狀態呢?ADOTable(其他任何資料集元件也一樣沒有)沒有處理狀態改變時的。
好,讓我們看一看:對每個資料集元件,我們通常使用一個資料來源元件來呈現於一個或多個資料視覺化控制元件的連線。就是這樣。
每個資料來源元件都有一個OnStateChange事件,無論潛在的資料集狀態什麼時候改變它都見觸發。把下面的程式碼放到OnStateChange事件控制程式碼中,用表單的標題顯示ADOTable1資料集元件的當前狀態:
procedure TForm1.Data1StateChange(Sender: T);
var ds: string;
begin
case ADOTable1.State of
dsInactive: ds:='Closed';
dsBrowse : ds:='Browsing';
dsEdit : ds:='Editing';
dsInsert : ds:='New record inserting';
else
ds:='Other states'
end;
Caption:='ADOTable1 state: ' + ds;
end;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-993064/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Delphi之快速設計(程式設計篇) (轉)程式設計
- WINDOWS CE 資料庫程式設計 (轉)Windows資料庫程式設計
- Delphi程式設計之--慣用法 (轉)程式設計
- Linux+Informix後臺資料庫系統《====》WinXX/ODBC/DELPHI/CBUILDER/VB程式設計設定 (轉)LinuxORM資料庫UI程式設計
- 用Delphi 開發資料庫程式經驗三則 (轉)資料庫
- VC的另類資料庫程式設計(轉)資料庫程式設計
- ADO資料庫程式設計入門(轉)資料庫程式設計
- C#下資料庫程式設計(二) (轉)C#資料庫程式設計
- 在DELPHI程式中使用ADO物件存取ODBC資料庫 (轉)物件資料庫
- delphi連資料庫資料庫
- Delphi實用程式設計經驗二 (轉)程式設計
- Java的資料庫程式設計(JDBC)技術[轉]Java資料庫程式設計JDBC
- 談談VB的資料庫程式設計方式 (轉)資料庫程式設計
- VB資料庫程式設計的幾點心得 (轉)資料庫程式設計
- 用Python實現資料庫程式設計 (轉)Python資料庫程式設計
- 資料庫實驗八 資料庫程式設計資料庫程式設計
- 資料庫實驗五:資料庫程式設計資料庫程式設計
- Delphi程式設計:完全控制桌面的實現 (轉)程式設計
- Delphi實用程式設計經驗二則 (轉)程式設計
- Delphi托盤程式設計實戰演練 (轉)程式設計
- 【資料庫設計】資料庫的設計資料庫
- Delphi設計模式-Abstract Factory (轉)設計模式
- 談Delphi程式設計中資原始檔的應用 (轉)程式設計
- 用Delphi進行OpenGL程式設計學習心得 (轉)程式設計
- Delphi 中物件導向程式設計之我見 (轉)物件程式設計
- DELPHI下的多執行緒程式設計(1) (轉)執行緒程式設計
- DELPHI下的多執行緒程式設計(2) (轉)執行緒程式設計
- Delphi COM程式設計介紹程式設計
- Socket程式設計(九)程式設計
- Go Web 程式設計之 資料庫GoWeb程式設計資料庫
- 抽獎小程式資料庫設計資料庫
- python mysql資料庫程式設計PythonMySql資料庫程式設計
- 資料庫程式設計注意事項資料庫程式設計
- JAVA程式與資料庫設計困惑~Java資料庫
- 資料庫程式設計方法總結資料庫程式設計
- Python SQLite資料庫程式設計PythonSQLite資料庫程式設計
- Delphi程式設計:用流來讀取TXT檔案中的資料程式設計
- 淺談資料庫設計技巧(下)(轉)資料庫