Passing a TEXT/BYTE as parameter
BYTE
or TEXT
data types define large data object
(LOB) handlers internally implemented as "locators".
When you pass a BYTE
or TEXT
to a function, the locator is
pushed on the stack and popped to the receiving BYTE
or TEXT
variable in the function. The actual LOB data is not copied, only the locator is passed by
value.
Important: Since the information of the locator structure is copied (like the file name
specified with a
LOCATE IN FILE
instruction). If you modify the locator storage information inside the function with a
LOCATE
instruction, the locator in the caller will become invalid. Therefore, only
read and write the actual data of BYTE
and TEXT
parameters in
functions, do not modify the storage.