以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  删除问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=76492)

--  作者:rjh4078
--  发布时间:2015/10/30 11:17:00
--  删除问题
测试发现 未保存的行 无法触发全局表事件 daterowdeleting
现在有个问题 父行有beforesave事件 但是子行必须要先保存 因为有sql语句要判断状态 现在添加一个父行 添加了2个子行 但是接下来删掉了父行 出现一个问题 父行没了 子行却留在了后台数据库

我在全局表事件 daterowdeleting添加了以下代码 但是无法触发

For Each re As Relation In Relations
    If Re.ChildTable.Name=e.DataTable.name Then
        DataTables(Re.childTable.Name).SQLDeleteFor(Re.ChildColumn.Name=e.DataRow(Re.ParentColumn.Name))
        MessageBox.show(Re.ChildColumn.Name=e.DataRow(Re.ParentColumn.Name))
    End If
Next

--  作者:大红袍
--  发布时间:2015/10/30 11:25:00
--  

呃,删除父行,不会触发子表的删除事件啊。

 

你应该判断父亲的name


--  作者:rjh4078
--  发布时间:2015/10/30 11:37:00
--  
不好意思 贴错代码了
For Each re As Relation In Relations
    If Re.parentTable.Name=e.DataTable.name Then
        DataTables(Re.childTable.Name).SQLDeleteFor(Re.ChildColumn.Name=e.DataRow(Re.ParentColumn.Name))
        MessageBox.show(Re.ChildColumn.Name=e.DataRow(Re.ParentColumn.Name))
    End If
Next
这个代码也是没有反应

--  作者:大红袍
--  发布时间:2015/10/30 11:41:00
--  

加入msgbox看是否触发了事件,代码这样写

 

DataTables(Re.childTable.Name).SQLDeleteFor(Re.ChildColumn.Name & "=\'" & e.DataRow(Re.ParentColumn.Name) & "\'")


--  作者:rjh4078
--  发布时间:2015/10/30 11:49:00
--  
看我代码 已经加入了msgbox 没有触发该事件  
--  作者:大红袍
--  发布时间:2015/10/30 11:58:00
--  
以下是引用rjh4078在2015/10/30 11:49:00的发言:
看我代码 已经加入了msgbox 没有触发该事件  

 

全局表事件,你要开启一下的。

 

http://www.foxtable.com/help/topics/0671.htm

 


--  作者:rjh4078
--  发布时间:2015/10/30 12:00:00
--  
呃 果然高手 开错开关了