メインコンテンツまでスキップ
バージョン: 20 R7 BETA

GET FIELD RELATION

GET FIELD RELATION ( manyField ; one ; many {; *} )

引数説明
manyFieldFieldリレート開始フィールド
oneIntegern対1リレートの状態
manyInteger1対nリレートの状態
*演算子指定時: oneとmanyにはリレーション の現在の状態が返る (値は2または3のみ) 省略時 (デフォルト): プログラムでリレーションが 変更されていなければ、oneとmanyに1が返される

説明

GET FIELD RELATIONを使用すると、カレントプロセスの、manyFieldから開始するリレートの自動/マニュアルのステータスを調べることができます。ストラクチャウィンドウで設定した自動リレートをはじめとして、あらゆるリレートを調べることができます。

  • manyFieldには、状態を調べようとするリレートが開始するnテーブルのフィールド名を渡します。フィールドmanyFieldから開始するリレートが存在しない場合、引数onemanyには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 RELATIONSSET 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

プロパティ

コマンド番号920
スレッドセーフである