全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1290
推到 Plurk!
推到 Facebook!

怎么样保存表的筛选结果

答題得分者是:tuga
zhouying82
高階會員


發表:150
回覆:272
積分:189
註冊:2004-03-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2013-05-28 13:11:58 IP:116.239.xxx.xxx 訂閱
 var c:TClientDataSet ;
c:=TClientDataSet.Create(nil);
c.Filtered :=false;
c.Filtered :=true;c.Open;
c.post;
c.SaveToFile('c:\123.cds');//这个文件还是原来的内容,而不是筛选好的结果
[/code]
------
断断续续的学了几年,还是一个初学者,永远支持Delphi !
編輯記錄
taishyang 重新編輯於 2013-05-30 13:21:40, 註解 無‧
tuga
高階會員


發表:16
回覆:109
積分:120
註冊:2002-07-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2013-05-30 13:53:17 IP:220.133.xxx.xxx 訂閱
Saves a client dataset data to an external file.

procedure SaveToFile(const FileName: string);

Description

Call SaveToFile to write a client dataset data to an external file for later use by this or other client datasets. FileName is the name of the external file to use. If the file already exists, its current contents are overwritten.

根據原文的說明, 我猜 data 是不受 filter 影響, 所以 copy 出來還是全部的 data

急得話, 可以寫個迴圈, 筆數不多時, 效能也還好, 下面這段, 您可以參考, 僅是寫出來大意, 您再自己修一下

var
cdsNew : TClientDataset ;
i : integer;
fieldName : string ;
begin
cdsNew := TClientDataset.Create(application);
cdsNew.FieldsDef.Assign(ClientDataSet1.FieldByName('type').AsString = 'XX' then
begin
cdsNew.Append;
for i := 0 to (cdsNew.FieldCount-1) do
begin
fieldName := cdsNew.Fields[i].FieldName ;
cdsNew.FieldByName(fieldName).Value :=
ClientDataSet1.FieldByName(
我筛选出了一些结果,想把他们单独保存为一个文件,但是不管怎么弄,都不行,急死我了。谁能帮帮我?代码如下

[code delphi]
begin
c.Data :=ClientDataSet1.Data ;
c.Filter :='类型=' QuotedStr('XX') ;
c.edit;
c.MergeChangeLog ;
c.SaveToFile('c:\123.cds');//这个文件还是原来的内容,而不是筛选好的结果
[/code]
編輯記錄
tuga 重新編輯於 2013-05-30 13:55:08, 註解 無‧
tuga 重新編輯於 2013-05-30 13:56:47, 註解 無‧
zhouying82
高階會員


發表:150
回覆:272
積分:189
註冊:2004-03-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2013-05-31 12:59:28 IP:116.239.xxx.xxx 訂閱
谢谢大大,但我是的记录有1W条,看起来就有点问题了。
------
断断续续的学了几年,还是一个初学者,永远支持Delphi !
zhouying82
高階會員


發表:150
回覆:272
積分:189
註冊:2004-03-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2013-05-31 13:02:08 IP:116.239.xxx.xxx 訂閱
搞定了,加了个DisableControls 和 EnabledControls.就可以减少刷新。再次感谢楼上大大。
------
断断续续的学了几年,还是一个初学者,永远支持Delphi !
tuga
高階會員


發表:16
回覆:109
積分:120
註冊:2002-07-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2013-05-31 13:27:43 IP:61.219.xxx.xxx 訂閱
不客氣
系統時間:2024-04-25 20:43:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!