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.