gpt4 book ai didi

c# - 并发控制Oracle与Delphi7

转载 作者:行者123 更新时间:2023-11-30 12:22:37 25 4
gpt4 key购买 nike

我们面临以增量方式访问 Oracle 行的问题,表架构是-

myTable(UniqueNum,flag)

UniqueNum是数字不重复的字段,flag是默认值为F的字段。

我的编程步骤是:

  1. 获取标志为 F 的 UniqueNum。

    select min(UniquaNum) 
    from myTable
    where flag='F';
  2. 执行操作。

一些操作(comport上的通信)

  1. 设置标志为T。

    Update myTable 
    set flag='T'
    where flag='F'
    and UniqueNum= 'UN'

我开发了一个执行这些步骤的 exe (Delphi-7)。当 exe 同时在多台 PC 上运行时会出现此问题。许多 exe 获取相同的 UniqueNum(第 1 步),但只有其中一个 exe 可以执行所有 3 个步骤。

比方说,PC1 选择13 并执行第2 步,此时PC2 执行第1 步,然后它也会获取13。那么对于 PC2,我的第 3 步将失败。

我想知道的是,是否有某种机制可以避免这种类型的抓取(行锁或表锁)?

谁能提出更好的解决方案来避免这种并发?如何在 Delphi 或 C# 中实现相同的功能?

最佳答案

在第 1 步中,您需要执行“选择 .. 等待更新”。您必须检查查询是否成功并采取相应行动。

关于c# - 并发控制Oracle与Delphi7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40283122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com