function returns logical
Description
returns true if a record in the database (identified by a rowid) is locked by another process
Parameters
icTableName | input | character | database table name |
icRecordRowid | input | character | |
Internal usage
QadFinancials
program code (program1/progress.p)
/* Use existing buffer if possible */
find first tQbuffers where
tQbuffers.tcTable = icTableName + "1" and
tQbuffers.tiIsInUseBy = 0 and
tQbuffers.tlActive = yes no-error.
if available tQbuffers
then do:
viBufferID = ?.
viBufferID = tQbuffers.thBuffer:unique-id no-error.
if viBufferID <> tQbuffers.tiBufferID
then delete tQbuffers.
end.
if available tQbuffers
then do transaction:
vgQBufferUsage = vgQBufferUsage + 1.
tQbuffers.tgUsage = vgQBufferUsage.
tQbuffers.thBuffer:find-by-rowid (to-rowid(icRecordRowid), exclusive-lock, no-wait).
vlIsLocked = tQbuffers.thBuffer:locked.
tQbuffers.thBuffer:buffer-release().
end.
else do:
create buffer vhLocalBuffer for table icTableName in widget-pool "non-persistent" no-error.
if valid-handle(vhLocalBuffer)
then do transaction:
vhLocalBuffer:find-by-rowid (to-rowid(icRecordRowid), exclusive-lock, no-wait).
vlIsLocked = vhLocalBuffer:locked.
vhLocalBuffer:buffer-release().
delete object vhLocalBuffer.
end.
end.
return vlIsLocked.