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