如何在ClientDataSet動態add的所有欄位包含DataSetField |
缺席
|
ivankuo
中階會員 發表:132 回覆:272 積分:95 註冊:2002-11-21 發送簡訊給我 |
小弟在測試3-tier程式,AP Server端是用SQLQueryM和SQLQueryD(主從關係)
加上DataSource,和DataSetProvider DataSource.DataSet:=SQLQueryM;
SQLQueryD.DataSource:=DataSource;
DataSetProvider.DataSet:=SQLQueryM; 在Client端AP中有
ClientDataSetM,ClientDataSetD
我要在程式碼裡面如何去add SQLQueryM的所有欄位包含DataSetFieldㄋ??
------
ivankuo |
ying0515
中階會員 發表:90 回覆:168 積分:81 註冊:2003-01-04 發送簡訊給我 |
|
ying0515
中階會員 發表:90 回覆:168 積分:81 註冊:2003-01-04 發送簡訊給我 |
cdsHD,cdsDL並沒有手動加入欄位
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, DBTables, DBClient, Provider; type TForm1 = class(TForm) qHD: TQuery; Database1: TDatabase; Button1: TButton; Memo1: TMemo; tDL: TTable; DataSource1: TDataSource; pvMain: TDataSetProvider; cdsHD: TClientDataSet; cdsDL: TClientDataSet; Memo2: TMemo; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin memo1.Clear; memo2.Clear; cdsHD.Open; for i:= 0 to cdsHD.FieldCount - 1 do begin memo1.Lines.Add(cdsHD.Fields[i].FieldName); if (cdsHD.Fields[i] is TDataSetField) then cdsDL.DataSetField := TDataSetField(cdsHD.Fields[i]); end; for i:= 0 to cdsDL.FieldCount - 1 do begin memo2.Lines.Add(cdsDL.Fields[i].FieldName); end; end; end.Delphi Man
------
Delphi |
ivankuo
中階會員 發表:132 回覆:272 積分:95 註冊:2002-11-21 發送簡訊給我 |
|
ying0515
中階會員 發表:90 回覆:168 積分:81 註冊:2003-01-04 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |