如何在OracleApex中实现悲观锁定



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

但是,我想确保两个用户不能同时编辑,并且当一个用户点击编辑时,所有用户都不能看到编辑按钮,直到保存/提交记录。也可以留言,例如,另一个用户正在编辑记录,请稍后再试。

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

要回答您的问题:
您可以创建一个动态操作,该操作将在pageLoad上触发。然后,DA应将列更新为1或Y。

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

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

我强烈建议不要走那条路
请信任Oracle APEX的Prevent Lost UpdatesLock Row机制。这些在Automatic Row Processing过程的Settings部分中可用。

最新更新