SQL record internals

You need to be aware of the internal layout of an SQL record in any of these situations:
  • You use an EGL assignment statement to copy an SQL record to or from a record of a different type
  • The runtime argument passed to an EGL program is an SQL record, but the program parameter is not an SQL record
  • The runtime argument passed to an EGL function is an SQL record
  • You receive an SQL record as a parameter in a non-EGL program
  • You use an SQL record as the original or redefining record in a record redefinition.

Four bytes precede the business data in each structure field in an SQL record. The first two bytes are a null indicator, and a null is interpreted as any negative value. The second two bytes are reserved for use as a length field, and you should not access that field.