version 3
DEFAULT TABLE (aTable)
| 引数 | 型 | 説明 | |
| aTable | テーブル | デフォルトとして設定するテーブル |
説明
DEFAULT TABLEコマンドは、aTable をカレントプロセスのデフォルトテーブルとして設定します。
DEFAULT TABLEコマンドが実行されるまで、デフォルトテーブルは存在しません。デフォルトテーブルを設定した後で、テーブル引数を省略したコマンドはデフォルトテーブルに対して実行されます。例えば、以下のコマンドを見てください。
INPUT FORM ([table]; "form")
デフォルトテーブルで[table]を設定した場合に、以下のような同じコマンドの別の記述が可能です。
INPUT FORM ("form")
デフォルトテーブルの設定のもう1つの目的は、テーブルに特定されないステートメントを作成することです。これによって、同じステートメントで異なるテーブルを操作することができます。また、テーブルへのポインタを使用して、テーブルに特定されないコードを作成することもできます。この手法に関する詳細は、Table nameコマンドの説明を参照してください。
フィールドを参照する場合テーブル名を省略することはできません。例えば、以下のように記述します:
[My Table]My Field:="A string" `正しい記述
以下のように記述することはできません。
DEFAULT TABLE ([My Table]) My Field:="A string" `誤った記述
これは、単にデフォルトテーブルが設定されるだけです。しかし、フォームメソッド、オブジェクトメソッドにおいてそれに属するテーブルのフィールドを参照する場合は、テーブル名を省略することができます。
4Dでは、すべてのテーブルは"開かれて" おり、使用する準備ができています。しかし、DEFAULT TABLE はテーブルを"開いたり" 、カレントテーブルを設定、あるいは入出力のためにテーブルを準備することはありません。DEFAULT TABLE はプログラミングの労力の節約とステートメントを読みやすくするための便宜を図るだけです。
Tip: DEFAULT TABLEの使用やテーブル名の省略により、ステートメントを読みやすくすることができるかもしれません。しかし多くのプログラマーは、このコマンドが実際の価値よりも多くの問題と混乱の原因となるとみなしています。
例題
以下の例は、最初に DEFAULT TABLEコマンドを使用しないステートメントを示しています。この後で、DEFAULT TABLEコマンドを使用した同じステートメントを示します。このステートメントは、新しいレコードをデータベースに追加するのによく使用されるループです。INPUT FORMコマンドとADD RECORDコマンドは、1番目の引数としてテーブルを必要とします。
INPUT FORM ([Customers];"Add Recs") Repeat ADD RECORD ([Customers]) Until (OK = 0)
デフォルトテーブルの指定により、以下のメソッドが導かれます。
DEFAULT TABLE ([Customers])
INPUT FORM ("Add Recs")
Repeat
ADD RECORD
Until (OK = 0)
参照
Current default table, NO DEFAULT TABLE.