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

DEFAULT TABLE

DEFAULT TABLE ( aTable )

引数説明
aTableTableデフォルトとして設定するテーブル

説明

Tip: DEFAULT TABLEの使用やテーブル名の省略により、ステートメントを読みやすくすることが できるかもしれません。しかし多くのプログラマーは、このコマンドが実際の価値よりも多くの問題と混乱の原因となるとみなしています。特にテーブルフォー ムとプロジェクトフォームで同じ名前のフォームが存在する場合、DEFAULT TABLEが使用されていると、例えばDIALOGコマンドなどでテーブルフォームのほうが使用されてしまいます。

DEFAULT TABLEコマンドは、aTable をカレントプロセスのデフォルトテーブルとして設定します。

DEFAULT TABLEコマンドが実行されるまで、デフォルトテーブルは存在しません。デフォルトテーブルを設定した後で、テーブル引数を省略したコマンドはデフォルトテーブルに対して実行されます。例えば、以下のコマンドを見てください。

 FORM SET INPUT([table];"form")

デフォルトテーブルで[table]を設定した場合に、以下のような同じコマンドの別の記述が可能です。

 FORM SET INPUT("form")

デフォルトテーブ ルの設定のもう1つの目的は、テーブルに特定されないステートメントを作成することです。これによって、同じステートメントで異なるテーブルを操作するこ とができます。また、テーブルへのポインタを使用して、テーブルに特定されないコードを作成することもできます。この手法に関する詳細は、 Table name コマンドの説明を参照してください。
フィールドを参照する場合テーブル名を省略することはできません。例えば、以下のように記述します:

 [My Table]My Field:="A string" //正しい記述

以下のように記述することはできません。

 DEFAULT TABLE([My Table])
 My Field:="A string" //誤った記述

これは、単にデフォルトテーブルが設定されるだけです。

4Dでは、すべてのテーブルは"開かれて" おり、使用する準備ができています。しかしDEFAULT TABLEはテーブルを"開いたり" 、カレントテーブルを設定、あるいは入出力のためにテーブルを準備することはありません。DEFAULT TABLEはプログラミングの労力の節約とステートメントを読みやすくするための便宜を図るだけです。

例題

以下の例は、最初にDEFAULT TABLEコマンドを使用しないステートメントを示しています。この後でDEFAULT TABLEコマンドを使用した同じステートメントを示します。このステートメントは、新しいレコードをデータベースに追加するのによく使用されるループです。FORM SET INPUTコマンドとADD RECORDコマンドは、1番目の引数としてテーブルを必要とします。

 FORM SET INPUT([Customers];"Add Recs")
 Repeat
    ADD RECORD([Customers])
 Until(OK=0)

デフォルトテーブルの指定により、以下のメソッドが導かれます。

 DEFAULT TABLE([Customers])
 FORM SET INPUT("Add Recs")
 Repeat
    ADD RECORD
 Until(OK=0)

参照

Current default table
NO DEFAULT TABLE

プロパティ

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