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.