如何将一ClientDataSet的数据添加至另一ClientDataSet中? 现有两数据表A和B,A含B的所有字段,B作为A的数据模板.在表A中添加记录时,如何将已有B的数据添加至表A中? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用CDSA.Close(cdsb);两个对应都同一份dataset上,修改就可同步了 CDSA.Close(cdsb);这是什么意思?能否说得具体点? clientdataset1.data:=clientdataset2.data;这样做的前提是两个clientdataset都是活动的,并且它们的字段相同。 to eboywy: 不行啊,由于更新是由Delta属性决定的,这样不能保存到表中吧. 况且我也试过,我使得B表字段与A字段一样,这样赋值A还会出现乱字符,我用的是ClientDataSetA.AppendData(ClientDataSetB.Data,False); 试过CloneCursor方法吗,可以在两个数据集之间进行数据共享示例dsQuery.CloneCursor(Source,True);//Source为被克隆的数据集 如果上述方法不行地话就使用SQL直接更新或编写触发器搞定它 克隆只有两个数据结构相同时才用。要是结构不一样,还是直接for i:.....吧。:) 添加的时候根据输入的信息从B中找出再赋给A吧,这个情况用Clone方法不行的 一点思路:A beforepost : begin 定位B(使用Locate or Lookup); A.FieldByName('').AsString := A.FieldByName('').AsString; //Lookup可直接取值end; 将A的连接源断掉,然后直接指定A.data := B.data 1、直接把赋值:dataset1.data:=dataset2.data2、CloneCursor方法:dataset1.CloneCursor(Source,True) 自己继承一个ClientDataSet,override assign方法啊. 一般用克隆是比较好的方法,因为它不会影响当前CDS的Record指针 ClientDataSet1.CloneCursor(ClientDataSet2,True); clientdataset1.data:=clientdataset2.data; ClientDataSet10.AppendData(ClientDataSet1.Data,false); ClientDataSet10.AppendData(ClientDataSet1.Data,false); ClientDataSet10.Providername:= 一个空的DataSetProvider ClientDataSet10.remoteserver:= ClientDataSet1的remoteserver值 ClientDataSet10.AppendData(ClientDataSet1.Data,false); ClientDataSet1.Data:=ClientDataSet2.Data李维说的 ClientDataSet1.Data:=ClientDataSet2.DataClientDataSet10.AppendData(ClientDataSet1.Data,false); 让两个ClientDataSet使用同一个DataSetProvider 上说的都有问题,如果你Clientdataset中有些字段是字典表,就不行了,因为大家都没有试,Clientdataset1 := TClientDataSet(Clientdataset2),这就完全是一样了; 如何判断一个对象是否有效? Delphi怎么判断两幅图片是一样的啊? 发布我的开发的网游--注册模块 Dbgrid的问题,急,在线等!! 我给不了更多的分数,因为我不是高级用户,再次提问,现在哪里还有可以支持FTP能上传大于2M的免费空间啊?谢谢大家啦,200%结贴!申请成功后继 用DELPHI可以和BCB写的程序连接再一起吗? 菜鸟问题,请高手指教。 关于钩子 installshield中如何使用和指定脚本定义的文件夹(script-defined folders)? 一个你可能不知道的软件!! 关于Nmsmtp发送邮件密码认证的问题 怎样实现网络数据库的数据同步
两个对应都同一份dataset上,修改就可同步了
能否说得具体点?
不行啊,由于更新是由Delta属性决定的,这样不能保存到表中吧.
况且我也试过,我使得B表字段与A字段一样,这样赋值A还会出现乱字符,
我用的是ClientDataSetA.AppendData(ClientDataSetB.Data,False);
示例
dsQuery.CloneCursor(Source,True);//Source为被克隆的数据集
A beforepost :
begin
定位B(使用Locate or Lookup);
A.FieldByName('').AsString := A.FieldByName('').AsString; //Lookup可直接取值
end;
2、CloneCursor方法:dataset1.CloneCursor(Source,True)
override assign方法啊.
ClientDataSet10.remoteserver:= ClientDataSet1的remoteserver值
李维说的