起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 199|回复: 5

【结贴】数据集删除的系列问题

[复制链接]
发表于 2009-10-19 10:40:58 | 显示全部楼层 |阅读模式
有两个数据集ZB、CB,ZB是主表,CB是从表,属于一对多的关系,即ZB的guid对应CB的gzpguid字段,代码如下:
guid := InfoBroker_GZP.Info.DataSetByID('ZB').FieldByName('GUID').AsString;
    self.InfoBroker_GZP.Info.DataSetByID('ZB').Delete;
    self.InfoBroker_GZP.Info.DataSetByID('ZB').ApplyUpdates;

    if guid <> '' then
    begin
         TSQLDataSet(DataSetBroker_CZP.DataSet).SQLFiltered := False ;
         TSQLDataSet(DataSetBroker_CZP.DataSet).SQLFilter := 'gzpguid = ''' + guid + '''';
         TSQLDataSet(DataSetBroker_CZP.DataSet).SQLFiltered := True;

         DataSetBroker_CZP.DataSet.open;
         if DataSetBroker_CZP.DataSet.RecordCount > 0 then
         begin
            self.InfoBroker_GZP.Info.DataSetByID('CB').Delete;
            self.InfoBroker_GZP.Info.DataSetByID('CB').ApplyUpdates;
         end;
    end;

InfoBroker_GZP是ZB的信息代理,InfoBroker_CZP是CB的信息代理。需要实现删除ZB的记录时,CB的对应的记录也要删除。现在的问题是根据guid查找CB的记录时却找不到,是什么原因?库里确实有这些记录。另外,为了保证ZB,CB的数据能一起删除,应当使用事务是吧,请问代码该怎么写啊?还有最后一个问题,就是这个功能是第一个环节,如果这些数据删除的话,那么这个流程也应该被删除才是,不然在任务栏上总会显示有一条没有数据的流程环节。那么流程环节的删除代码怎么写?初学X3,请不吝赐教!
回复

使用道具 举报

发表于 2009-10-19 10:53:08 | 显示全部楼层
只需要 设置这两个数据集的主从关系就可以了吧。(主从关系设置后可以级联删除,同一个业务信息中的多个数据集操作,平台会启动一个事务处理的)

对于业务数据删除后,流程数据要删除
http://bbs.justep.com/forum.php?mod=viewthread&tid=29881
回复 支持 反对

使用道具 举报

发表于 2009-10-19 10:54:16 | 显示全部楼层
首先说说你的代码吧,
在循环里面不要执行数据集的提交动作,即数据集的 ApplyUpdates,这样频繁跟数据库交互,是很影响性能的,
其他说说删除动作,主从数据集的删除,如果在定义其实设置了主从(同一个信息下的主从数据集是在同一个事务中),那么可以根据从数据集的主从关系属性,见附件中的规则这里来定义

对于 不同业务信息的数据集想在同一事务内处理 和 同一业务信息的数据集在同一事务内处理   可以参考
http://bbs.justep.com/forum.php?mod=viewthread&tid=3450
http://bbs.justep.com/forum.php?mod=viewthread&tid=3449

无标题.gif

23.2 KB, 下载次数: 146

回复 支持 反对

使用道具 举报

发表于 2009-10-19 10:57:57 | 显示全部楼层
然后说说,为啥“现在的问题是根据guid查找CB的记录时却找不到,是什么原因?”,因为从数据集是自带根据主数据集来过滤的,你先把主数据集该记录删除了,那么光标肯定会移动的,这样,从数据集已经根据当前主数据集记录过滤了,这样你再根据删除这个条记录来找原先的从数据集记录就找不到了。所以应该先删除从数据集,然后再删除主数据集。
回复 支持 反对

使用道具 举报

发表于 2009-10-19 10:58:19 | 显示全部楼层
最后一个问题,zfang已经给了连接了,请参考
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-19 16:21:13 | 显示全部楼层
理解了,请结贴,谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-15 12:41 , Processed in 0.050515 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表