Page History
9.41 DEFINE_SPACE_CELL
| Note | ||
|---|---|---|
| title | Note: | Built-In Function Rules Usage Options |
Defines a cell (or column) within the nominated space object. Refer also to the other SPACE Built-In Functions.
Arguments
No | Type | Req/ Opt | Description | Min Len | Max Len | Min Dec | Max Dec |
|---|---|---|---|---|---|---|---|
1 | A | R | Name of the space into which the cell should be defined. | 1 | 256 | ||
2 | A | R | Name of a field whose definition is to be used as a prototype for the definition of this space cell. Note that this is the name of the field, not the field itself. Thus you should specify an employee number field as EMPNO rather than #EMPNO (which means that the content of field #EMPNO contains the field name). | 1 | 10 | ||
3 | A | O | Cell attributes. Multiple cell attributes should be separated by a single space. The list of valid attributes (which may be in any case) includes: KEY: specifies that this cell is a key to the space contents. Space objects should always have at least one key cell. DESCEND: specifies that descending sequence should be applied to this cell. This attribute is only valid when used with the KEY attribute, otherwise it is ignored. NOCASE: specifies that the case of the key is ignored and all key comparisons are done in lowercase. This attribute is only valid when used with alphanumeric KEY cells, otherwise it is ignored. | 1 | 256 |
Return Values
No | Type | Req/ Opt | Description | Min Len | Max Len | Min Dec | Max Dec |
|---|---|---|---|---|---|---|---|
1 | A | O | Standard Return Code "OK" = Cell defined. "ER" = Cell definition attempt failed. Messages issued will indicate more about the cause of the failure. | 2 | 2 |
Technical Notes
The specified space object must be defined before any attempt is made to define cells within it (see the CREATE_SPACE Built-In Function)
...
If the data in the space requires more than one level of key to uniquely identify an individual entry, then more than one cell MUST be defined as the key.
Examples
Example 1
This example defines a space whose name is the current components name suffixed by ".emp" and then defines 3 cells within it whose type and length are based on the definitions of fields EMPNO, GIVENAME and SURNAME respectively. The first cell the key to the space:
Define #SpaceName *char 20
Use TConcat (*component '.EMP') (#SpaceName)
Use Create_Space (#SpaceName)
Use Define_Space_Cell (#SpaceName EmpNo Key)
Use Define_Space_Cell (#SpaceName GiveName)
Use Define_Space_Cell (#SpaceName SurName);
Example2
The section file (SECTAB) in the LANSA demonstration system requires that two levels of key be specified to identify any given record. The space must be defined in a similar format. Failure to do so will cause unpredictable results when attempting to retrieve data from the space using SELECT_IN_SPACE and SELECT_NEXT_IN_SPACE.
Define field(#SpaceName) type(*char) length(20)
Use TConcat (*component '.EMP') #SpaceName)
Use Create_Space (#SpaceName)
Use Define_Space_Cell (#SpaceName Deptment Key)
Use Define_Space_Cell (#SpaceName Section Key)
Use Define_Space_Cell (#SpaceName Secdesc)