Type: Integer
The read-only lockDuration property of the LockException class contains the duration of the lock that was encountered in a multiuser environment.
The lock durations (whose values are provided by global constants in the
| Global Constant | Integer |
|---|---|
| Persistent_Duration | 2 |
| Session_Duration | 1 |
| Transaction_Duration | 0 |
The following example shows the use of the lockDuration property.
handleLockException(le: LockException): Integer;
//Example using tryLock to retry a lock
vars
result : Integer;
message : String;
begin
message := 'Cannot get lock for ' & le.lockTarget.String &
'. It is locked by user ' ;
result := app.msgBox('Lock Error', message & le.targetLockedBy.userCode
& '. Retry?', MsgBox_Question_Mark_Icon + MsgBox_Yes_No);
if result = MsgBox_Return_Yes then
app.mousePointer := Busy;
while not tryLock(le.lockTarget, le.lockType, le.lockDuration,
LockTimeout_Server_Defined) do
app.mousePointer := Idle;
result := app.msgBox('Lock Error', message &
le.targetLockedBy.userCode & '. Retry?',
MsgBox_Question_Mark_Icon + MsgBox_Yes_No);
if result = MsgBox_Return_No then
return Ex_Abort_Action;
endif;
app.mousePointer := Busy;
endwhile;
return Ex_Resume_Next;
endif;
return Ex_Abort_Action;
epilog
app.mousePointer := Idle;
end;