The READ-ONLY directive allows you to make some fields (columns) of data read-only, while preserving normal access to other fields/columns. When placed immediately before a data item in an FD, this directive assigns the read-only attribute to the item. The read-only attribute applies only to elementary items and not to group items. Subsequent data items return to normal read-write access.
$XFD READ-ONLY
or
*(( XFD READ-ONLY ))
In the code creating the animals table, the owner data item has been designated as read-only. The code is:
FILE SECTION. FD jr-file. $XFD COMMENT This sample file demonstrates directives. 01 jr-record. 03 animal-info. $XFD NAME=PATIENT, NUMERIC 05 patient-id pic x(5). 05 atype pic x. 05 ctype redefines atype pic x. 05 dtype redefines atype pic x. 05 otype redefines atype pic x. 03 owner-info. 05 phone pic x(8). $XFD READ-ONLY 05 owner pic x(30). 03 financial. 05 acct_no. 10 year pic x(2). 10 seq_no pic x(4). $XFD DATE=YYYYMMDD, USE GROUP 05 last_visit. 10 yyyy pic 9(4). 10 mm pic 9(2). 10 dd pic 9(2). $XFD HIDDEN 05 fee pic s9(5)v99. $XFD DATE=MMDDYYYY 05 date_paid pic 9(8).
In the database table, the owner column looks the same as the other columns. However, if users attempt to modify data in the owner column, they receive a message telling them that the update on a linked table failed.