Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle apex 如何在Oracle Apex中实现悲观锁定_Oracle Apex - Fatal编程技术网

Oracle apex 如何在Oracle Apex中实现悲观锁定

Oracle apex 如何在Oracle Apex中实现悲观锁定,oracle-apex,Oracle Apex,我有ID列上的链接,当用户点击链接时,有一个编辑按钮。 单击“编辑”时,用户可以进行更改 但是,我想确保两个用户不能同时编辑,当一个用户单击编辑时,所有用户在保存/提交记录之前都不能看到编辑按钮。 另外,若要留下信息,如记录正在由其他用户编辑,请稍后再试 我可以在表中添加一列,例如编辑编号(1),但如何将此列更改为1。 当用户单击编辑按钮时?回答您的问题: 您可以创建一个动态动作,该动作将在页面加载时触发。然后DA应将列更新为1或Y !!警告: 但如何确保该列将更新回0或N?关闭模式的按钮和操作

我有ID列上的链接,当用户点击链接时,有一个编辑按钮。 单击“编辑”时,用户可以进行更改

但是,我想确保两个用户不能同时编辑,当一个用户单击编辑时,所有用户在保存/提交记录之前都不能看到编辑按钮。 另外,若要留下信息,如记录正在由其他用户编辑,请稍后再试

我可以在表中添加一列,例如编辑编号(1),但如何将此列更改为1。
当用户单击编辑按钮时?

回答您的问题:
您可以创建一个动态动作,该动作将在页面加载时触发。然后DA应将列更新为1或Y

!!警告
但如何确保该列将更新回0或N?关闭模式的按钮和操作可以将列更新回初始状态,但X-Close窗口按钮不能。如果浏览器关闭或崩溃怎么办

在这种情况下,您将留下一条记录,任何人都无法再编辑该记录,因为该记录仍指示为当前正在编辑

我强烈建议不要走那条路

相反,请信任Oracle APEX的
防止丢失更新
锁定行
机制。这些可在
自动行处理
过程的
设置部分获得。

回答您的问题:
您可以创建一个动态动作,该动作将在页面加载时触发。然后DA应将列更新为1或Y

!!警告
但如何确保该列将更新回0或N?关闭模式的按钮和操作可以将列更新回初始状态,但X-Close窗口按钮不能。如果浏览器关闭或崩溃怎么办

在这种情况下,您将留下一条记录,任何人都无法再编辑该记录,因为该记录仍指示为当前正在编辑

我强烈建议不要走那条路

相反,请信任Oracle APEX的
防止丢失更新
锁定行
机制。这些在
自动行处理
过程的
设置
部分中可用。

谢谢@Giliam,我可以在崩溃时安排作业。我使用普通页面进行编辑,而不是使用模式对话框。在单击“保存”按钮后,我是否可以使用DA将列再次更新为0或N。但是,如果这不是一个模式,那么如何确保在执行保存操作后,用户开始编辑更多的列,而列已被设置回其打开状态。就像我之前说过的,这不是一条路。@Goku但Giliam是对的,为什么传统的乐观锁定对这个页面来说不够好?我不使用自动行处理来保存数据。我使用PL/SQL代码。我尝试使用散列值来比较表头之前和单击保存时表中的数据。但用户可以浪费时间编辑该记录,然后得到该记录已过时的消息。在这种情况下,用户必须再次编辑记录。谢谢@Giliam,我可以在崩溃时安排作业。我使用普通页面进行编辑,而不是使用模式对话框。在单击“保存”按钮后,我是否可以使用DA将列再次更新为0或N。但是,如果这不是一个模式,那么如何确保在执行保存操作后,用户开始编辑更多的列,而列已被设置回其打开状态。就像我之前说过的,这不是一条路。@Goku但Giliam是对的,为什么传统的乐观锁定对这个页面来说不够好?我不使用自动行处理来保存数据。我使用PL/SQL代码。我尝试使用散列值来比较表头之前和单击保存时表中的数据。但用户可以浪费时间编辑该记录,然后得到该记录已过时的消息。在这种情况下,用户必须再次编辑记录。