Consultor Eletrônico



Kbase P111953: 4GL/ABL: What is the maximum length of the HEXADECIMAL string representation of a ROWID?
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   29/04/2010
Status: Verified

GOAL:

4GL/ABL: What is the maximum length of the HEXADECIMAL string representation of a ROWID?

GOAL:

What is the maximum width of the string returned by the 4GL/ABL STRING function acting on a database table record ROWID?

GOAL:

To pass the ROWID outside Progress, we need to convert it to a string. How wide should this string be so that we can convert it back to ROWID to use it to FIND its database table record?

FACT(s) (Environment):

All Supported Operating Systems
Progress 9.x
OpenEdge 10.x
OpenEdge Category: Language (4GL/ABL)

FIX:

A ROWID is composed of two parts: the dbkey, which identifies a specific database block within a storage area, and a relative record number which identifies a specific record within the block. Together, these two parts form a 32-bit positive integer.
Thus the maximum BINARY value of a record ROWID is:
11111111111111111111111111111111
which equals the (2 ^ 32) - 1 = 4294967295 in DECIMAL and FFFFFFFF in HEXADECIMAL.
Therefore, the maximum width of the string returned by the 4GL/ABL STRING function acting on a database table record ROWID is 10. For example: 0xFFFFFFFF