请教各位高手关于:clientdataset

csdnwind 2003-11-17 11:06:49
在ClientDataSet1的记录进行循环中,另一个ClientDataSet2是否可以进行多次打开关闭。

本人在测试时,总是出现ClientDataSet1处于非edit或者insert状态。
比如
while not ClientDataSet1.eof do
begin
ClientDataSet2.close;
ClientDataSet2.fetchparams;
ClientDataSet2.Params.ParamByName ('@pt_id').asinteger:=ClientDataSet1.FieldByName('pt_id').asinteger;
ClientDataSet2.open;
ClientDataSet1.edit;
ClientDataSet1['print_qty']:=ClientDataSet2['qty'];
ClientDataSet1.next;
end;
...全文
40 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
duxin 2004-03-04
  • 打赏
  • 举报
回复
近期强制结贴 如有疑问 请发消息咨询

此贴强制被结
wuzhongmin 2003-11-18
  • 打赏
  • 举报
回复
ClientDataSet1['print_qty']:=ClientDataSet2['qty'];之后应该要ClientDataSet1.post吧,怎么会不要这句呢?
hiflower 2003-11-18
  • 打赏
  • 举报
回复
应该是没问题的,你可以先把 Clientdataset2 注释掉再试试,以确定它们是否相互影响
csdnwind 2003-11-18
  • 打赏
  • 举报
回复
问题找到了。
因为在给ClientDataSet1的字段'print_qty'付值时,触发了一个change事件,关键在于此事件中包含ClientDataSet1.post,把这行注释掉就可以。
也就是说post事件相当于把ClientDataSet1关闭了,所以不能再付值。


多谢大家的关心。
csdnwind 2003-11-17
  • 打赏
  • 举报
回复
但是总是提示,clientdataset1为非编辑或者插入状态,所以不能对其进行付值操作,也就是运行到ClientDataSet1['print_qty']:=ClientDataSet2['qty']; 就出错误提示。
aiirii 2003-11-17
  • 打赏
  • 举报
回复
>>在ClientDataSet1的记录进行循环中,另一个ClientDataSet2是否可以进行多次打开关闭。
我覺得是沒問題的, 除非是主從關系的表!!

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧