GET FIELD RELATION
GET FIELD RELATION ( manyField ; one ; many {; *} )
引数 | 型 | 説明 | |
---|---|---|---|
manyField | Field | → | リレート開始フィールド |
one | Integer | ← | n対1リレートの状態 |
many | Integer | ← | 1対nリレートの状態 |
* | 演算子 | → | 指定時: oneとmanyにはリレーション の現在の状態が返る (値は2または3のみ) 省略時 (デフォルト): プログラムでリレーションが 変更されていなければ、oneとmanyに1が返される |
説明
GET FIELD RELATIONを使用すると、カレントプロセスの、manyFieldから開始するリレートの自動/マニュアルのステータスを調べることができます。ストラクチャウィンドウで設定した自動リレートをはじめとして、あらゆるリレートを調べることができます。
- manyFieldには、状態を調べようとするリレートが開始するnテーブルのフィールド名を渡します。フィールドmanyFieldから開始するリレートが存在しない場合、引数oneとmanyには0が返されます。またエラーが返されて、システム変数OKには0が代入されます (後述)。
- コマンドの実行後、引数oneには、指定したn対1リレートが自動に設定されているかどうかを示す値が格納されます:
0 = manyFieldから始まるリレートが存在しません。シンタックスエラー16 (“このフィールドにはリレートが設定されていません。”) が生成され、システム変数OKには0が代入されます。
1 = 指定されたn対1リレートの自動/マニュアルのステータスは、デザインモードのリレートプロパティ内の自動1対1リレートオプションにより設定されたものです (プログラムにより変更されていない)。
2 = そのプロセスのn対1のリレートはマニュアルです。
3 = そのプロセスのn対1のリレートは自動です。 - コマンドの実行後、引数manyには、指定した1対nリレートが自動に設定されているかどうかを示す値が格納されます:
0 = manyFieldから始まるリレートが存在しません。シンタックスエラー16 (“このフィールドにはリレートが設定されていません。”) が生成され、システム変数OKには0が代入されます。
1 = 指定された1対nリレートの自動/マニュアルのステータスは、デザインモードのリレートプロパティ内の自動1対nリレートオプションにより設定されたものです (プログラムにより変更されていない)。
2 = そのプロセスの1対nのリレートはマニュアルです。
3 = そのプロセスの1対nのリレートは自動です。
oneおよびmany引数に返された値は、“” テーマの定数と比較することができます:
定数 | 型 | 値 | コメント |
---|---|---|---|
Automatic | 倍長整数 | 3 | カレントプロセスに対し、リレートを自動に設定する。 |
Manual | 倍長整数 | 2 | カレントプロセスに対し、リレートをマニュアルに設定する。 |
No relation | 倍長整数 | 0 | |
Structure configuration | 倍長整数 | 1 | アプリケーションのストラクチャウインドウで指定されたリレートの設定を使用する。 |
- オプションの引数 * を使用すると、プログラムから修正されていない場合でも、リレートのカレントステータスを“強制的に”読み込むことができます。言い換えれば引数 * を渡した場合、引数oneおよびmanyには値2または3だけが返されます。
例題
以下のようなストラクチャがあります:
[Employees]Companyフィールドから[Companies]Nameフィールドへリンクするリレートのプロパティは次の通りです:
次のコードはGET FIELD RELATION、GET AUTOMATIC RELATIONS、SET FIELD RELATION、およびSET AUTOMATIC RELATIONSにより提供されるさまざまな機能とともに、その効果を示します:
GET AUTOMATIC RELATIONS(one;many) //False, Falseを返す
GET FIELD RELATION([Employees]Company;one;many) //1,1を返す
GET FIELD RELATION([Employees]Company;one;many;*) //3,2を返す
SET FIELD RELATION([Employees]Company;2;0) //n対1リレーションをマニュアルに変更
GET FIELD RELATION([Employees]Company;one;many) //2,1を返す
GET FIELD RELATION([Employees]Company;one;many;*) //2, 2を返す
SET FIELD RELATION([Employees]Company;1;0) //デザインモードで設定された
//n対1リレーションに戻す
GET FIELD RELATION([Employees]Company;one;many) //1,1を返す
GET FIELD RELATION([Employees]Company;one;many;*) //3,2を返す
SET AUTOMATIC RELATIONS(True;True) //すべてのテーブルのすべてのリレーションを自動に設定
GET AUTOMATIC RELATIONS(one;many) //True, Trueを返す
GET FIELD RELATION([Employees]Company;one;many) //1,1を返す
GET FIELD RELATION([Employees]Company;one;many;*) //3,3を返す
参照
GET AUTOMATIC RELATIONS
GET RELATION PROPERTIES
SET AUTOMATIC RELATIONS
SET FIELD RELATION