如何用TClientDataSet建临时表?请给出例子(100分)

  • 主题发起人 主题发起人 dragonlll
  • 开始时间 开始时间
D

dragonlll

Unregistered / Unconfirmed
GUEST, unregistred user!
如何用TClientDataSet建临时表,包括临时表的存储(append,post),越详细越好!!!
感谢。
 
用法跟Table一样,只是不用指定
DatabaseName和TableName,Remote Server也不要。

它可以用以下方法编辑字段(表结构),
ClientDataSet.FieldDefs.AddFieldDef;
当然还可以用以下方法编辑数据,
ClientDataSet.Append;
ClientDataSet.Edit;
ClientDataSet.Post;
用以下方法添加索引,
ClientDataSet.IndexDefs.AddIndexDef;
还可以Filter ......

要注意:
1.用ClientDataSet.Close后 ,表结构(虚拟)被清除;
2.不要Refresh,他要Remote Server.
 
如果有remote server
在其上建立一个tmpTable tmpProvider

then
var
tmpClientDataSet:TClientDataSet;
begin
...
tmpClientDataSet:=TClientDataSet.Create(nil);
with tmpClientDataSet do
begin
databasename:=...
provider='tmpprovider';

...
end;


至于临时表的存储(append,post)与TTable无异


 
两位大侠:
我用clientdataset 建了一个临时表,语句如下:
with c1.FieldDefs do
begin
Add('htbh',ftstring,6,false);
Add('khbh',ftstring,6,false);
end;
c1.CreateDataSet ;
目前的情况是这样:
我在DBCtrlGrid上放了两个dbedit1、dbedit2 , 但我不知如何把dbedit1和'htbh'
连起来,把dbedit2和'khbh'连起来,我现在运行后dbedit中写不进字,DataSource1已
指向c1了。
拜托!!!
江湖后进 lll
2000.10.30
 
with dbedit1 do
begin
datasource:=c1的clientdataset;
fieldname:='HTBH';
end;

dbedit2类似

注意:列名大写比较好
 

用 DBEdit1.DataField="htbh";的确可以。

procedure TForm1.DBEdit2KeyPress(Sender: TObject; var Key: Char);
begin
if Key= #13 then
begin
Key:=#0;
c1.edit;
c1.Post ;
c1.Append ;

dbedit1.SetFocus ;
end;
end;
在回车时,不能使DBCtrlGrid 更新一行,为什么??
请告诉。

弟 LMH
11.1







 
多人接受答案了。
 
我测试过可以通过!
 
后退
顶部