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 명의 사용자가있다, 발견되지 않는 경우는, 다음 데이터베이스에서 하나 개의 레코드를 만들 수 있습니다. 질문은, 동시에 운영은 dead lock으로 보일 것입니다. 레코드를 찾을 때 NO-LOCK NO-WAIT를 시도합니다. 레코드를 생성 할 때 작동이 dead lock으로 표시됩니다.동시 작업이 진행 4GL
덕분에 어떤 대답.
난 당신이 교착 상태를 방지하기 위해 배타적 LOCK 대신 NO-LOCK을 사용한다고 생각합니다. 그런 다음 LOCKED 함수를 사용하여 레코드가 잠겨 있는지 여부를 확인하고 적절한 작업을 수행 할 수 있습니다. – Austin