Skip to main content
Previous sectionNext section

ReadOnly

Specifies that a property is read-only, which limits the number of ways its value can be set.

Usage

To specify that the property is read-only, use the following syntax:

Property name As classname [ ReadOnly ];
Copy code to clipboard

Otherwise, omit this keyword or place the word Not immediately before the keyword.

Important:

Do not use the ReadOnly keyword with collection properties.

Details

This keyword specifies that you cannot set the value of that property by using an object reference. If you attempt to set the value of a read-only property using an object reference, such as:

set oref.Name = "newvalue"
Copy code to clipboard

then there is a <CANNOT SET THIS PROPERTY> error at runtime.

Similarly, when a property is defined as read-only, the field in the corresponding SQL table is also defined as read-only. You cannot explicitly insert or update a read-only field via SQL statements. An attempt to do so results in an SQL error with an SQLCODE of -138.

You can specify the value of a read-only property in the following ways:

Note that each of these techniques has specific limitations.

Notes

If a property is marked as both read-only and required, note the following difference in behavior between object access and SQL access:

  • When you save the object, InterSystems IRIS does not validate the property. This means that InterSystems IRIS ignores the Required keyword for that property.

  • When you insert or update a record, InterSystems IRIS does consider the Required keyword for the property.

Default

If you omit this keyword, the property is not read-only.

See Also