Generic Record Types
There are a number or built-in record types for KCML that define how parameters may be used. These types may only ever be used with BYREF parameters to desribe how the parameter is used. As BYREF parameters are passed existing variables no string is created with the generic record type which has no conents itself.
GenericRecordType
Parameter can be any record type except a database row which may have views. Using STRING_CAST with this parameter will not error.
GenericParameterType
Parameter can be any record type. Using STRING_CAST with this parameter will not error.
GenericRedimType
Parameter can be any string, record or database row type. It is expected to be used in redim type situations where the parameter fields are neither inspected or modified. For instance a subroutine that simply redimmed an array to increase the number of elements without changing the element size. For a parameter r$(), you would expect to see redim code such as MAT REDIM r$(newsize)DIM(r$(), 0)
GenericDatabaseRowType
Parameter can be any record or database row type.
DatabaseRowReWriteType
The parameter may be rewritten to a database row.
DatabaseRowWriteType
The parameter may be written to a database row.
DatabaseRowReadType
The parameter may be filled in using a database read.
DatabaseRowKeyType
The parameter may be used as a key to a database search.
DatabaseRowSymType
This type may only be used in the context SYM(X$_DatabaseRowSymType). It is compatible with the SYM of any database row buffer and will not affect view determination. It is the responsibility of the programmer to ensure that any fields accessed via this SYM form part of the view for the buffer.
| Type | Can be passed viewable records | Prevents view calculations |
|---|---|---|
| GenericRecordType | X | |
| GenericParameterType | X | |
| GenericRedimType | X | |
| GenericDatabaseRowType | X | X |
| DatabaseRowReWriteType | X | |
| DatabaseRowWriteType | X | X |
| DatabaseRowReadType | X | |
| DatabaseRowKeyType | X | |
| DatabaseRowSymType | X |