c++ - 带有 SQL Server 的 MFC 应用程序 - 锁定行/表
问题描述
我希望我的 C++ 应用程序(用 MFC + SQL Server 编写)以下列方式运行:
- 打开一个界面。它将从表中读取一些数据并锁定所有读取的行,这样其他人就无法更改这些行,但可以读取它们。
- 上一段中的行可以在界面中使用更长的时间,在界面关闭之前对其他人保持锁定。
- 经过一段时间(以及一些更改)后,我想编写更改。整个表应该有一个排他锁,直到操作完成。在此操作期间,即使其他人从该表中读取也应该是不可能的(排他锁)。
- 写入更改后,表应该被解锁(移除排他锁),但第 1 段中提到的行仍应保持锁定,因为我想继续处理它们。
- 最后,关闭界面(释放行锁)。
问题是上述场景仅适用于一开始就开始的事务。表锁 (TABLOCKX) 将一直保持到该事务将被提交或回滚,这不是我想要的。
知道如何实现这个目标吗?
解决方案
推荐阅读
- oracle - 从 Oracle CLOB 创建新行并写入 HDFS
- reactjs - 为什么我在我的 axios GET 请求中得到 [object Object]?
- angular - nginx转发器参数到角度
- sql - 接受 id 并返回表的函数 - 如何为多个 id 调用它?
- paypal - Paypal 的四舍五入税额
- javascript - 将数组追加到本地存储对象
- c# - 错误 CS0118 'TestBuilder' 是命名空间,但用作类型
- css - Stylelint 错误 - 前导装饰器必须附加到类声明
- events - 谷歌地图点击事件不适用于点击标记
- logstash - 由于 UTF-8 中的无效字节序列,无法加载 Logstash