ROWID columns

Informix®

When creating a table, Informix automatically adds a ROWID integer column (applies to non-fragmented tables only).

The ROWID column is auto-filled with a unique number and can be used like a primary key to access a given row.

Note: Informix ROWID usage was a common practice in the early days of Informix 4GL programming. Today it is recommended to define all your database tables with a PRIMARY KEY to uniquely identify rows.

With Informix, the SQLCA.SQLERRD[6] register contains the ROWID of the last modified row.

Microsoft™ SQL Server

Microsoft SQL Server does not support ROWIDs.

Solution

If the BDL application uses ROWIDs, it is recommended that the program logic is reviewed in order to use the real primary keys instead (usually serials, which can be supported). All references to SQLCA.SQLERRD[6] must be removed because this variable will not hold the ROWID of the last modified row.

If your existing Informix application depends on using ROWID values, you can use the IDENTITY property of the DECIMAL, INT, NUMERIC, SMALLINT, BIGINT, or TINYINT data types, to simulate this functionality.

The ROWID keyword translation can be controlled with the following FGLPROFILE entry:
dbi.database.dsname.ifxemul.rowid = { true | false }
For more details see IBM Informix emulation parameters in FGLPROFILE.