我正在开发一种 Oracle Apex 表单,其中有一个字段和两个按钮。我需要一个按钮来执行插入,然后执行提交,而另一个按钮只执行插入而不提交更改。
是否可以在 Oracle Apex 中禁用自动提交来实现此行为?
提前致谢。
在 APEX 中,apex 引擎在固定点提交,并且如果调用其他 API,提交也会隐式执行。有几个博客解释了这一点,只需谷歌“Oracle APEX 何时提交”即可。通常您不必担心提交 - APEX 会为您处理这件事。因此,最佳实践是,永远不要在 APEX 代码中添加
COMMIT;
语句。
由于 APEX 是无状态的,因此 APEX 中不可能出现未提交的代码。呈现页面时,APEX 引擎(在数据库中)生成页面并将其提供给浏览器。当您处于呈现的 APEX 应用程序页面时,没有与数据库的连接。当页面提交或者有ajax进程时,就会建立一个新的连接。
解决这个问题的方法是使用Collections。不要将数据插入表中而不提交,而是将其插入到集合中。然后当你想保存表中的数据时,从集合中选择它并插入到表中。