触发不触发

2020-08-24 02:05发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我在不同的表上做了很多更新后触发器,这些触发器将通过执行存储过程将表的PK写入日志表。 触发器可以在一张桌子以外的所有桌子上正常工作。 该表没有关闭触发器。

经过一些测试,我发现如果我仅与Data Architect中的表建立字典连接,则表触发器可以正常工作,但是,如果在打开Data Architect之前打开应用程序,则触发器将失败。

我在整个代码中搜索sp_DisableTriggers,但没有一个。 我做了一些测试,发现如果我先在Data Architect中打开表,然后将Data Architect打开,然后再打开我的应用程序,则触发器可以正常工作。 因此,我们的应用程序对表进行了某些操作,导致触发器中断。 这是一家多程序员商店,我不是制作此表的原始程序员,但我仔细检查了代码,并使用数据字典连接而不是自由表来打开它。

我尽全力做到这一点,您所能提供的任何帮助将不胜感激。

谢谢

吉姆·弗拉格

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我在不同的表上做了很多更新后触发器,这些触发器将通过执行存储过程将表的PK写入日志表。 触发器可以在一张桌子以外的所有桌子上正常工作。 该表没有关闭触发器。

经过一些测试,我发现如果我仅与Data Architect中的表建立字典连接,则表触发器可以正常工作,但是,如果在打开Data Architect之前打开应用程序,则触发器将失败。

我在整个代码中搜索sp_DisableTriggers,但没有一个。 我做了一些测试,发现如果我先在Data Architect中打开表,然后将Data Architect打开,然后再打开我的应用程序,则触发器可以正常工作。 因此,我们的应用程序对表进行了某些操作,导致触发器中断。 这是一家多程序员商店,我不是制作此表的原始程序员,但我仔细检查了代码,并使用数据字典连接而不是自由表来打开它。

我尽全力做到这一点,您所能提供的任何帮助将不胜感激。

谢谢

吉姆·弗拉格

付费偷看设置
发送
3条回答
浮生未央
1楼-- · 2020-08-24 02:34

仅供参考,

我们正在使用v12。 经过一些测试和反复试验后,我发现了问题所在。 在"远程连接"上,您打开了一个空闲表(没有添加字典连接),并使其在服务器上打开了该表的触发器,并退出了对该表的所有后续连接,直到该空闲连接关闭为止。 在我们的应用程序中,我们正在为某些表打开一个免费连接,以处理专门的删除操作,这些操作不会在要删除的表上启动任何触发器/功能/过程。 我更正了代码,以确保它使用字典连接,但是我们可能在不同的地方吞吐了使用不带连接的简单TAdsTable的代码。 我们发现,如果最初打开与所有具有触发器的表的字典连接,并使连接保持打开状态,则可以解决自由连接不允许触发器触发的问题。 即使有人在其他地方打开了表的免费连接,如果触发器触发了,那也很好。

谢谢

Jim Flagg

派大星 ヾ
2楼-- · 2020-08-24 02:45

您正在使用哪个版本的ADS?

ads_err是否存在任何错误?*?

表ADT是否存在 还是DBF?

触发器是SQL脚本,Windows DLL/Linux SO还是COM对象/.Net程序集?

是否有另一个连接可以打开表? 一个免费的连接,而ARC连接正在阻止它?

打个大熊猫
3楼-- · 2020-08-24 02:57

那是我的第一个猜测,但是您之前写过:

我再次检查了代码,它是通过数据字典连接而不是作为空闲表打开的。

所以我没有跟进。 打开表格时,ADS会设置一个标记以支持触发器。 如果是免费连接,就不会有任何连接。

在不使用触发器的情况下打开表时,会得到相同的结果,然后向其中添加一些触发器。 直到关闭并重新打开表文件后,触发器才会触发。

一周热门 更多>