Try OpenEdge Now
skip to main content
ABL Reference
Handle Attributes and Methods Reference : FIND-BY-ROWID( ) method
 

FIND-BY-ROWID( ) method

Locates the record with the rowid you specify, then moves the record into the buffer.
Return type: LOGICAL
Applies to: Buffer object handle

Syntax

FIND-BY-ROWID ( rowid
[ ,
{ SHARE-LOCK | EXCLUSIVE-LOCK | NO-LOCK }
[ , NO-WAIT ]
] )
rowid
An expression of type ROWID that represents the rowid of the desired record.
SHARE-LOCK | EXCLUSIVE-LOCK | NO-LOCK
The type of lock that the AVM places on the record, if found. The default is SHARE-LOCK.
Note: For more information on record locks, see OpenEdge Getting Started: ABL Essentials.
NO-WAIT
Causes FIND-BY-ROWID to return FALSE immediately if another user has a lock on the desired record and FIND-BY-ROWID specifies a locking option other than NO-LOCK.
Note: To determine whether another user has a lock on the desired record, use the LOCKED attribute of the buffer object.
The FIND-BY-ROWID method returns TRUE if it finds the record, and FALSE if it does not.
The following is an example:
DEFINE VARIABLE bh AS HANDLE NO-UNDO.
DEFINE VARIABLE r  AS ROWID  NO-UNDO.

r = ... /* ROWID from some parameter */
bh = BUFFER CUSTOMER:HANDLE.
bh:FIND-BY-ROWID(r).
Note: The FIND-BY-ROWID method corresponds to a FIND statement of the form FIND buffer WHERE ROWID ( buffer ) = rowid ..., etc. That is, triggers are honored, and the default lock mode is SHARE-LOCK. One difference, however, is that the FIND-BY-ROWID method does not raise an error if it cannot find the record.