天天看點

delphi開發學習四:TClientDataSet與TDataSetProvider控件使用執行個體

1、TClientDataSet控件

通過TClientDataSet控件可以建立瘦用戶端的應用程式,且資料執行效率較高,但它不能和資料庫自動連接配接,程式中必須制定它如何擷取資料。一般情況下,TClientDataSet 控件擷取資料的方式主要有 3 種:從本地檔案中擷取、從本地的另外一個資料集對象中擷取以及通過 IAppServer 接口來擷取。

2.TDataSetProvider 控件

TDataSetProvider 控件基于資料集為應用程式中的其他控件提供資料, 并将對資料的更新傳回資料集或資料集相關的資料庫伺服器。

3.TClientDataSet 控件與 TDataSetProvider 控件應用執行個體

在這裡依舊使用delphi開發學習一中建立的工程Adotest,在工程ADOtest裡建立窗體TCDatafrm,在窗體上添加

控件ADOQuery1,DataSetProvide1,ClientDataSet1,DataSource1,DBGrid1,Button1,

并設定其屬性:ADOQuery1.connection      =dlinkfrm.ADOConnection1;

    DataSetProvide1.DataSet  =ADOQuery1;

                            DataSource1.DataSet         =ClientDataSet1,

    DBGrid1.DataSource           =DataSource1;

這些屬性都可以在視圖中直接選擇設定,如下圖所示:

delphi開發學習四:TClientDataSet與TDataSetProvider控件使用執行個體
delphi開發學習四:TClientDataSet與TDataSetProvider控件使用執行個體
delphi開發學習四:TClientDataSet與TDataSetProvider控件使用執行個體
delphi開發學習四:TClientDataSet與TDataSetProvider控件使用執行個體

通過以上控件的使用及其屬性設定後,在“查詢”按鈕的單擊事件裡添加适當代碼後就可以實作資料的查詢與顯示。以下代碼為“查詢”按鈕的單擊事件代碼:

procedure TTCDatafrm.Button1Click(Sender: TObject);

begin

ADOQuery1.close;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('SELECT * FROM BASE_DATA');

ADOQuery1.open;

//将 DataSetProvide1 提供的資料傳給 ClientDataSet1

ClientDataSet1.Data:=DataSetProvide1.Data;

end;

運作程式後,單擊“查詢”按鈕,得到如下圖所示的查詢結果。

delphi開發學習四:TClientDataSet與TDataSetProvider控件使用執行個體

該例控件實作的功能與前文開發學習三中ADOQuery,DataSource控件實作的功能的結果相同。但在開發操作中由于将資料庫操作封裝在

類中,是以資料的查詢與顯示通過ADO控件和DataSource控件實作起來相對比較困難,是以一般可以通過TClientDataSet控件和TDataSetProvider控件進行中間資料的傳遞。

---------------------

作者:FreeSoar1