ROWID ( record )To use the ROWID function with a record in a table defined for multiple databases, you must qualify the record’s table name with the database name. See the Record phrase reference entry for more information.You might decide that you do not want to lock a record until the user starts to update that record. In the example procedure, the FIND statement reads a Customer record without locking the record. The ROWID function puts the internal database identifier of that record in the crowid variable. If the user decides to update the CreditLimit field, the procedure finds the record again using the value in crowid. The second FIND statement reads the record again, this time placing an EXCLUSIVE-LOCK on it. Because the record is first found with NO-LOCK, it is possible for the record to be updated by another user after the first FIND and before the second.
DEFINE VARIABLE response AS LOGICAL NO-UNDO.DEFINE VARIABLE crowid AS ROWID NO-UNDO.REPEAT:PROMPT-FOR Customer.CustNum.FIND Customer USING Customer.CustNum NO-LOCK.crowid = ROWID(Customer).DISPLAY Customer.Name.response = YES.UPDATE response LABEL "Update CreditLimit ?".IF response THEN DO:FIND Customer WHERE ROWID(Customer) = crowid EXCLUSIVE-LOCK.UPDATE Customer.CreditLimit.END.END.
The ROWID data type is a variable-length byte string capable of representing a record identifier for any DataServer database. However, the scope of a specific ROWID returned by the ROWID function depends on the DataServer and possibly the table within a database. The ROWID values for some DataServers change whenever the corresponding record is modified. For others, a ROWID value can change when a particular column in a table is modified. For more information on how different DataServers derive and work with ROWID values, see the OpenEdge DataServer Guides (OpenEdge Data Management: DataServer for Microsoft SQL Server, OpenEdge Data Management: DataServer for ODBC, and OpenEdge Data Management: DataServer for Oracle).
© 2013 Progress Software Corporation and/or its subsidiaries or affiliates. |