以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 删除问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=56154) |
-- 作者:rjh4078 -- 发布时间:2014/8/30 16:08:00 -- 删除问题 发现使用datarowdelete或者rowdelete 只会将行从前端删除并不会从后台删除 如何让系统的删除不打折扣 只要执行了删除命令 前后台都删除 之前是通过全局表deleted事件来触发e.datatable.save但是这个会有点问题 如果遇到删除父行 子行又特别多 又触发beforesave事件就会陷于混乱 让人无法捉摸 |
-- 作者:Bin -- 发布时间:2014/8/30 16:09:00 -- 除开执行 e.datatable.save 没啥好方案了. |
-- 作者:狐狸爸爸 -- 发布时间:2014/8/30 16:10:00 -- 参考: http://www.foxtable.com/help/topics/2899.htm
|
-- 作者:rjh4078 -- 发布时间:2014/8/30 16:19:00 -- 狐爸这个sqldeletefor放到哪个事件中比较好?deleting事件中无法使用delete命令, 想使用全局事件来解决所有表的删除问题。如果放到按钮工作量太大了。如果放到beforedelete事件中是否影响表的独立beforedelete事件? [此贴子已经被作者于2014-8-30 16:22:24编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2014/8/30 16:26:00 -- 全错,应该放在你的删除按钮中,单击此按钮,彻底删除行。 主表和子表的删除,都在这个按钮中,都用SQLDeletefor |
-- 作者:Bin -- 发布时间:2014/8/30 16:26:00 -- 狐爸的意思是 放到按钮上去. 你可以编码获取选中行的_IDentify 然后把删除条件设置为这个.
|
-- 作者:rjh4078 -- 发布时间:2014/8/30 16:42:00 -- 这个工作量有点巨大 |
-- 作者:狐狸爸爸 -- 发布时间: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 -- 发布时间:2014/8/30 18:52:00 -- 看来版主连我的需求都没搞清楚 如果一两个表 无所谓了 现在在使用的有160多个表 关联表有40多个 都这么改? 很多跨表引用 现在都是datarow.delete 其实这个数据在后台根本没删掉 我们现在是全国联网 总部删了数据 分公司竟然还有 上级部门删了数据 下级还能sqlfind 特别是填日报 数据量特别大 如果网络不好 用全局表datarowdeleted的e.datatable.save经常卡死 所以现在寻求效率一点的方案 |
-- 作者:有点甜 -- 发布时间:2014/8/31 9:26:00 -- 回复9楼,请看8楼。
既然是需要实时的删除,那你就直接用sqlDeleteFor,这个是直接删除的。
8楼的意思是,你用dr.Delete的时候,把后台的删除一下而已。 |