Try OpenEdge Now
skip to main content
DataServer for Microsoft SQL Server
Initial Programming Considerations : ABL issues : RECID function

RECID function

For backward compatibility, the DataServer supports the RECID function for MS SQL Server data source tables that have a unique 4-byte integer column defined as the key for the ROWID/RECID index of a given table in the schema holder. Whenever the ROWID index selection for a schema holder table in the Dictionary has multi-component key composite or is a single-component key but not a single unique integer component, the RECID function is not supported and the compiler will disallow the use of the RECID function in a WHERE clause.
Note: The ROWID function does not have this same restriction and is the recommended alternative for this limitation.
When the Create RECID Field option is selected, the OpenEdge DB to MS SQL Server migration utility creates an indexed column with unique values for each row called PROGRESS_RECID. Starting with OpenEdge Release 10.1B, the field is defined as bigint and in Release 10.1A or earlier, the field is defined as integer. You can also add this column to tables manually if you are using an existing MS SQL Server database or if you ported an OpenEdge database without the Create RECID Field option selected.
If the PROGRESS_RECID field does not exist in the table, the DataServer utility automatically designates the index that meets the unique key criteria. For a complete description of the RECID function, see its reference entry in OpenEdge Development: ABL Reference.
RECID values can be stored in an INTEGER data type. The internal bit size for the INTEGER data type is not expanded from 32-bit to a 64-bit field size. If the RECID value stored in the INTEGER data type does exceed 32 bits however, an overflow condition occurs. See Overflow checking.
You can make an existing application that includes RECID behave more consistently across data sources by replacing RECID with ROWID. See ROWID function for more information.