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;
這些屬性都可以在視圖中直接選擇設定,如下圖所示:

通過以上控件的使用及其屬性設定後,在“查詢”按鈕的單擊事件裡添加适當代碼後就可以實作資料的查詢與顯示。以下代碼為“查詢”按鈕的單擊事件代碼:
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;
運作程式後,單擊“查詢”按鈕,得到如下圖所示的查詢結果。
該例控件實作的功能與前文開發學習三中ADOQuery,DataSource控件實作的功能的結果相同。但在開發操作中由于将資料庫操作封裝在
類中,是以資料的查詢與顯示通過ADO控件和DataSource控件實作起來相對比較困難,是以一般可以通過TClientDataSet控件和TDataSetProvider控件進行中間資料的傳遞。
---------------------
作者:FreeSoar1