version 2004
GET FIELD RELATION (manyField; one; many{; *})
| 引数 | 型 | 説明 | |
| manyField | フィールド | リレート開始フィールド | |
| one | 倍長整数 | n対1リレートの状態 | |
| many | 倍長整数 | 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リレートの自動/マニュアルのステータスは、マニュアルのステータスは (プログラムにより変更されていない)。 | |
| 2 = そのプロセスのn対1のリレートはマニュアルです。 | |
| 3 = そのプロセスのn対1のリレートは自動です。 |
・コマンドの実行後、引数manyには、指定した1対nリレートが自動に設定されているかどうかを示す値が格納されます:
| 0 = manyFieldから始まるリレートが存在しません。シンタックスエラー16 (“このフィールドにはリレートが設定されていません。”) が生成され、システム変数OKには0が代入されます。 | |
| 1 = 指定された1対nリレートの自動/マニュアルのステータスは、マニュアルのステータスは (プログラムにより変更されていない)。 | |
| 2 = そのプロセスの1対nのリレートはマニュアルです。 | |
| 3 = そのプロセスの1対nのリレートは自動です。 |
oneおよびmany引数に返された値は、“Relations” テーマの定数と比較することができます:
| 定数 | 型 | 値 |
| No relation | 倍長整数 | 0 |
| Structure configuration | 倍長整数 | 1 |
| Manual | 倍長整数 | 2 |
| Automatic | 倍長整数 | 3 |
・オプションの引数 * を使用すると、プログラムから修正されていない場合でも、リレートのカレントステータスを“強制的に”読み込むことができます。言い換えれば引数 * を渡した場合、引数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.