Progress
Language Reference
RELEASE Statement
Verifies that a record complies with mandatory field and unique index definitions. It clears the record from the buffer and unites it to the database if it has been changed.
SYNTAX
record
The name of a record buffer.
To use RELEASE 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.
NO-ERROR
Specifies that any errors that occur in the attempt to release the record are suppressed. After the RELEASE statement completes, you can check the ERROR-STATUS system handle for information on any errors that occurred.
EXAMPLEThe following example uses a browse widget to scan customer records. Records within the browse are read with NO-LOCK. If you choose the Update Customer button, the CHOOSE trigger starts a transaction and applies an EXCLUSIVE-LOCK to the customer record. When you have completed any updates, the procedure displays the new values in the browse widget and then executes a RELEASE statement. This ensures that the lock is released when the transaction ends.
If you omit the RELEASE statement in this example, the EXCLUSIVE-LOCK is downgraded to a SHARE-LOCK at the end of the transaction. This prevents other uses from updating that record. The SHARE-LOCK is released when you change the iteration of the browse.
NOTES
- An ERROR occurs if the validation of the record fails. This can happen only with newly created records.
- If a record has been modified, the RELEASE statement causes a WRITE event and fires any related WRITE trigger to execute. All WRITE triggers execute before the record is actually written. If a WRITE trigger fails (or executes a RETURN statement with the ERROR option), the corresponding record is not written or released and the ERROR condition is raised for the RELEASE statement. See the Progress Programming Handbook for more information on database triggers.
- See the Progress Programming Handbook for more information on transactions.
Copyright © 2004 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095 |