Passing TEXT/BYTE values 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.