注意: 9.1 組み込み関数の規則 利用オプション
指定されたスペース・オブジェクト内でセル(またはカラム)を定義します。その他の「スペース組み込み関数」も参照してください。
引数
|
戻り値
|
技術上の注記
指定されたスペース・オブジェクト内でセルを定義する前に、そのスペース・オブジェクトそのものが定義されている必要があります(組み込み関数 CREATE_SPACEを参照)。
指定された名前を持つフィールドの最初のインスタンスが見つかるまで、現在アクティブな呼び出しスタックが逆方向に検索されます。
フィールド名のインスタンスが見つかった場合、スペース・セルに対する定義のプロトタイプとして即座に使用されます(タイプ、長さ等)。
フィールド名のインスタンスが見つからなかった場合、回復不能メッセージが出力され、アプリケーションが停止します。
スペース・オブジェクト内で、すべてのKEYセルを最初のセルとして定義することをお勧めします。
キー・セルが定義される順番は、集合キー内部のセル行に対する順序を暗黙的に示しています。
すべてのセルが定義される順序は、INSERT_IN_SPACEおよびFETCH_IN_SPACEなどの他のスペース・コマンドに挿入または取り出しのマッピング順序を暗黙的に示します。
個々の項目を固有に識別するためにスペース内のデータにキーの複数のレベルが必要な場合は、複数のセルをキーとして定義する必要があります。
使用例
例 1
このサンプルは、現在のコンポーネント名 + ".emp" という名前のスペースを作成して、その中に3つのセルを定義するものです。3つのセルのタイプと長さは、それぞれEMPNO、GIVENAME、SURNAMEの定義に基づきます。最初のセルは、スペースへのキーです。
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);
例 2
LANSAデモンストレーション・システムのセクション・ファイル (SECTAB) では、任意の指定レコードを識別するために2つのレベルのキーを指定する必要があります。スペースは類似するフォーマットで定義する必要があります。そうでないと、SELECT_IN_SPACEおよび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)