skip to main content
OpenEdge Data Management: DataServer for ODBC
Programming Considerations : ABL issues : Compiling ABL procedures : R-code
 
R-code
R-code is generated when an ABL procedure is compiled. The compiled r-code is portable among machines. For example, r-code that you compile on a Sun machine can run on any other UNIX machine.
R-code is not portable among windowing systems; that is, r-code compiled for a character application will not run under Windows and r-code compiled for Windows will not run under a character application.
R-code is also not portable between database management systems. ABL generates calls that are specific to a database type. For example, code that you compile for a MS SQL Server database will not run against a database of the same name in Oracle.
R-code is also not portable among different databases. ABL generates calls that are specific to a database. For example, code that you compile for a database named Sports will not run with a database named mysports.
Prior to OpenEdge Version 11, r-code stored the physical position of a database column. R-code was not compatible with the server schema if the position of a column changed on the server. In Version 11, r-code stores a logical identifier for the physical position of a database column. Therefore, in OpenEdge 11, column positions in the server table can be rearranged without the need to recompile.
For more details on r-code portability, see OpenEdge Deployment: Managing ABL Applications.
The size of r-code grows when you compile procedures against an ODBC data source as compared to compiling against an OpenEdge database. The r-code for a DataServer application contains as text the portions of SQL statements that the DataServer passes to the data source. The r-code descriptors for column references contain more attribute information than corresponding OpenEdge descriptors.