Foxtable(狐表)用户栏目专家坐堂 → 删除问题


  共有2217人关注过本帖树形打印复制链接

主题:删除问题

帅哥哟,离线,有人找我吗?
rjh4078
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3355 积分:24732 威望:0 精华:0 注册:2012/3/26 21:47:00
删除问题  发帖心情 Post By:2014/8/30 16:08:00 [只看该作者]

发现使用datarowdelete或者rowdelete 只会将行从前端删除并不会从后台删除 如何让系统的删除不打折扣 只要执行了删除命令 前后台都删除

之前是通过全局表deleted事件来触发e.datatable.save但是这个会有点问题 如果遇到删除父行 子行又特别多 又触发beforesave事件就会陷于混乱 让人无法捉摸


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/8/30 16:09:00 [只看该作者]

除开执行 e.datatable.save 没啥好方案了.

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/8/30 16:10:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
rjh4078
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3355 积分:24732 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2014/8/30 16:19:00 [只看该作者]

狐爸这个sqldeletefor放到哪个事件中比较好?deleting事件中无法使用delete命令, 想使用全局事件来解决所有表的删除问题。如果放到按钮工作量太大了。如果放到beforedelete事件中是否影响表的独立beforedelete事件?
[此贴子已经被作者于2014-8-30 16:22:24编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/8/30 16:26:00 [只看该作者]

全错,应该放在你的删除按钮中,单击此按钮,彻底删除行。

主表和子表的删除,都在这个按钮中,都用SQLDeletefor


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/8/30 16:26:00 [只看该作者]

狐爸的意思是 放到按钮上去.

你可以编码获取选中行的_IDentify  然后把删除条件设置为这个.

 回到顶部
帅哥哟,离线,有人找我吗?
rjh4078
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3355 积分:24732 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2014/8/30 16:42:00 [只看该作者]

这个工作量有点巨大

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/8/30 16:45:00 [只看该作者]

呵呵,我不明白了,何来工作两巨大之说?

 

例如你要删除当前订单(父表)及其订单明细(子表),按钮的代码就是:

 

Dim Flt As string = "订单编号 = " & Tables(" 订单").Current("订单编号")

DataTables("订单").RemoveFor(flt)

DataTables("订单").SQLDeleteFor(flt)

DataTables("订单明细").RemoveFor(flt)

DataTables("订单明细").SQLDeleteFor(flt)


 回到顶部
帅哥哟,离线,有人找我吗?
rjh4078
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3355 积分:24732 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2014/8/30 18:52:00 [只看该作者]

看来版主连我的需求都没搞清楚
如果一两个表 无所谓了  现在在使用的有160多个表 关联表有40多个 都这么改?
很多跨表引用 现在都是datarow.delete 其实这个数据在后台根本没删掉 
我们现在是全国联网 总部删了数据 分公司竟然还有 上级部门删了数据 下级还能sqlfind 
特别是填日报 数据量特别大 如果网络不好 用全局表datarowdeleted的e.datatable.save经常卡死  所以现在寻求效率一点的方案


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/31 9:26:00 [只看该作者]

 回复9楼,请看8楼。

 

 既然是需要实时的删除,那你就直接用sqlDeleteFor,这个是直接删除的。

 

 8楼的意思是,你用dr.Delete的时候,把后台的删除一下而已。


 回到顶部
总数 12 1 2 下一页