oracle-apex - 如何在 Oracle Apex 中实现悲观锁定
问题描述
我在 ID 列上有链接,当用户点击链接时,会有一个 EDIT 按钮。单击 EDIT 时,用户可以进行更改。
但是,我想确保两个用户不能同时编辑,并且当一个用户单击编辑时,所有用户都看不到编辑按钮,直到保存/提交记录。也可以留言,例如。记录正在被其他用户编辑,请稍后再试。
我可以在表格中添加一列,例如。编辑数字(1),但是如何将此列更改为 1。当用户单击编辑按钮时?
解决方案
回答您的问题:
您可以创建一个将在 pageLoad 上触发的动态操作。然后,该 DA 应将该列更新为 1 或 Y。
!!警告:
但是您将如何确保该列将更新回 0 或 N?关闭模式的按钮和操作可以将列更新回其初始状态,但 X - 关闭窗口按钮不会。如果您的浏览器关闭或崩溃怎么办?
在这种情况下,您将留下一条记录,任何人都无法再编辑该记录,因为该记录仍指示为当前正在编辑。
我强烈建议不要走那条路!
相反,请相信 Oracle APEXPrevent Lost Updates
和Lock Row
机制。这些在过程的Settings
一部分中可用Automatic Row Processing
。
推荐阅读
- javascript - 节点和开发工具之间的 Intl.DateTimeFormat 差异
- c++ - 推断外部类型的模板参数
- rust - 无法通过在引用上链接迭代器来构造 Vec
- java - 在 RecyclerView 中过滤
- spring-boot - 使用 RestTemplate POST 方法仅使用查询参数发布请求
- typescript - Typescript 有时不接受 Redux 容器传递的 props
- javascript - HTML AJAX 实时更新 PHP 变量,使用 ajax 计数动画
- postgresql - Postgres 批量插入不同的模式
- python - 如何在熊猫上将一列年份与一列月份字符串连接起来以创建一个新的日期时间列
- .net - vb.net 拆分字符串组