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

关于clientdataset的,cds文件更新问题

答題得分者是:P.D.
terry_zhou82
一般會員


發表:8
回覆:22
積分:6
註冊:2012-08-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2012-09-03 14:14:10 IP:116.239.xxx.xxx 訂閱
我在clientdataset1.loadfromfile(c:\1.cds'),之后,deletefile了这个文件,在copyfile(d:\1.cds,c:\1.cds);但是在执行过后,一定要关闭程序,重新开启,他才会显示新的1.cds的内容(我估计会不会是因为内存表的驻留内存的问题,但是不知道如何清空,用clientdataset1.close好像可以实现,但是那个时候dbgrid里面的内容会为空,看的不太爽),我想实现实时显示,copy好之后,直接在dbgrid里面显示新的cds,
sryang
尊榮會員


發表:38
回覆:741
積分:875
註冊:2002-06-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2012-09-03 19:05:07 IP:114.35.xxx.xxx 訂閱
ClientDataSet.LoadFromFile 之後,就跟原來的 .cds 文件無關了
你要刷新 ClientDataSet 中的數據,就是再 LoadFromFile 一次
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
編輯記錄
sryang 重新編輯於 2012-09-03 05:05:48, 註解 無‧
P.D.
版主


發表:571
回覆:3880
積分:3666
註冊:2006-10-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2012-09-04 11:08:19 IP:118.169.xxx.xxx 未訂閱
追求完美是好事, 但有時反而會害了自己
試試這招
ClientDataSet1.DisableControls;
ClientDataSet1.Close;
ClientDataSet1.LoadFromFile(xxxxx);
ClientDataSet1.Open;
ClientDataSet1.EnableControls;
===================引 用 terry_zhou82 文 章===================
我在clientdataset1.loadfromfile(c:\1.cds'),之后,deletefile了这个文件,在copyfile(d:\1.cds,c:\1.cds);但是在执行过后,一定要关闭程序,重新开启,他才会显示新的1.cds的内容(我估计会不会是因为内存表的驻留内存的问题,但是不知道如何清空,用clientdataset1.close好像可以实现,但是那个时候dbgrid里面的内容会为空,看的不太爽),我想实现实时显示,copy好之后,直接在dbgrid里面显示新的cds,
terry_zhou82
一般會員


發表:8
回覆:22
積分:6
註冊:2012-08-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2012-09-04 12:59:24 IP:116.239.xxx.xxx 訂閱
 呵呵,谢谢大大们,我这里心黑,又有个问题,是关于循环选中内容的,但是下面的代码移植会弹出"at the beginnnig of the table",不知道是何故,望大大们帮我看看,谢谢!

[code delphi]
var s,i:integer;
begin
if not clientdataset1.eof then
begin
ClientDataSet1.Filter := '';
ClientDataSet1.Filtered := True;
Randomize;

begin
for i:=0 to ClientDataSet1.RecordCount -1 do
begin
s:=Random(ClientDataSet1.RecordCount);
end;

ClientDataSet1.recno:=s;

// clientdataset1.first;
DBGrid1CellClick(DBGrid1.Columns[1]);
showmessage(inttostr(s));

// showmessage(clientdataset1.fieldbyname('名字').asstring);
end;

end;
end;
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
title3:=clientdataset1.FieldByName('名字').AsString;
end;
[/code]
P.D.
版主


發表:571
回覆:3880
積分:3666
註冊:2006-10-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2012-09-05 09:49:29 IP:118.169.xxx.xxx 未訂閱
請另發文討論, 否則一問再問, 這帖豈不永遠結束的日子, 這樣其他網友要搜尋也很困擾
===================引 用 terry_zhou82 文 章===================
呵呵,谢谢大大们,我这里心黑,又有个问题,是关于循环选中内容的,但是下面的代码移植会弹出"at the beginnnig of the table",不知道是何故,望大大们帮我看看,谢谢!

[code delphi]
var s,i:integer;
begin
if not clientdataset1.eof then
begin
ClientDataSet1.Filter := '';
ClientDataSet1.Filtered := True;
Randomize;

begin
for i:=0 to ClientDataSet1.RecordCount -1 do
begin
s:=Random(ClientDataSet1.RecordCount);
end;

ClientDataSet1.recno:=s;

// clientdataset1.first;
DBGrid1CellClick(DBGrid1.Columns[1]);
showmessage(inttostr(s));

// showmessage(clientdataset1.fieldbyname('名字').asstring);
end;

end;
end;
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
title3:=clientdataset1.FieldByName('名字').AsString;
end;
[/code]
系統時間:2017-10-19 17:14:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!