Try OpenEdge Now
skip to main content
ABL Reference
ABL Syntax Reference : ROW-STATE function
 

ROW-STATE function

Returns an INTEGER value that represents the current change state of a static ProDataSet temp-table buffer.

Syntax

ROW-STATE( buffer-name )
buffer-name
The name of a ProDataSet temp-table buffer (preferably a before-image temp-table buffer).

Notes

*The ROW-STATE function corresponds to the ROW-STATE attribute.
*When the TRACKING-CHANGES attribute is set to TRUE for a ProDataSet temp-table, the AVM tracks changes to the data in that temp-table using a before-image temp-table that contains the original version of each modified row. You can think of the temp-table itself as the after-image because it contains the latest version of each row.
Every row in the after-image table that has been modified or created corresponds to a row in the before-image table. Deleted rows do not appear in the after-image table, because it reflects the current state of the data. Every row in the before-image table has a non-zero ROW-STATE, because every row is the before-image of a deleted, created, or modified row in the after-image table. Unchanged rows do not appear in the before-image table.
You can use the ROW-STATE function on each row in either the after-image table or the before-image table to determine whether a row has changed and how it has changed.
*The possible return values can be expressed as compiler constants. The following table lists these values.
Table 59. Row state values
Compiler constant
Value
Description
ROW-UNMODIFIED
0
The row was not modified.
ROW-DELETED
1
The row was deleted.
ROW-MODIFIED
2
The row was modified.
ROW-CREATED
3
The row was created.
*The ROW-STATE function returns the Unknown value (?) when the specified temp-table buffer:
*Does not contain a record
*Is an after-image table with no associated before-image table
*You can invoke the ROW-STATE function from within a WHERE clause (unlike the corresponding attribute). For example:
WHERE ROW-STATE(ttOrder) = ROW-MODIFIED.

See also

Buffer object handle. ROW-STATE attribute, TRACKING-CHANGES attribute