0
REPEAT With FRAME:

  prompt-for IN-SCAN3.scan.
  if input IN-SCAN3.scan="" then Do:
    Message "please input date.". 
    undo,retry.
  end.
  else DO:
    FIND FIRST in-scan3 USING IN-SCAN3.scan NO-LOCK NO-WAIT NO-ERROR.
    if avail In-scan3 then DO:
        str="OK".
        display str.
        next-prompt IN-SCAN3.scan. 
    end.
    else DO:    
        CREATE In-scan3.
        ASSIGN IN-scan3.scan=INPUT in-scan3.scan.

        str="NO". DISPLAY str.
        next-prompt In-scan3.scan.
    END.
  end.
  begin=begin + 1.
end.

質問の説明: 同時にスキャンを使用している 20 人のユーザーがいます。最初に入力データを見つけ、見つからない場合はデータベースに 1 つのレコードを作成します。問題は、同時に操作がデッドロックに見えるということです。検索時にレコードでNO-LOCK NO-WAITを試してみましたが、レコードを作成するときに動作がデッドロックに見えます。

答えてくれてありがとう。

4

1 に答える 1