テーブルごとに、格納および管理したいデータを保持するためのフィールドを作成する必要があります。
フィールドを作成する際、そこに格納される情報の種類を定義するフィールド型を割り当てます。4Dはフィールドの内容に対して異なる種類の処理を行うために、フィールド型を使用します。例えばフィールドが日付データを保持する場合、フィールドには日付型を割り当てます。そして4Dは期間の計算や日付の決定など、日付値の計算を行うことができます。さらに4Dは日付順でレコードを並び替えることができます。フィールド型については4Dのフィールドの型で説明しています。
フィールド型のほかに、テーブルのフィールドごとに、さまざまなプロパティーを設定できます。これらのプロパティはフィールドに対するデータの表示や更新、入力の条件を指定します。 この点についてはフィールドプロパティを参照してください。
フィールド作成後、いつでもその型やプロパティを変更できます。またフィールドを削除することもできます。
1テーブルに対して32,767フィールドまで作成できます。標準の作成コマンド、あるいはコピー/ペーストを使用して新しいフィールドを作成できます。
フィールドを作成するには:
- テーブル上で右クリックをし、コンテキストメニューからフィールド追加またはフィールド挿入を選択します。
または
テーブルイメージの最後のフィールドの下の空の行の上をダブルクリックします。
または
テーブルを選択し、ストラクチャーエディターツールバーのオブジェクト追加メニューから、フィールドオプションを選択します:

- (任意) 追加のフィールドを素早く作成するには、必要なだけ改行キーを押します。
フィールドがテーブルに追加され、4Dはそれを選択します。デフォルトでフィールドはField_X (Xはフィールド番号に対応、ただしフィールドが削除されていた場合、この番号はテーブル中の実際のフィールド番号に対応しないかも知れません。後述の"削除されたフィールドの番号"参照) と名称がつけられます。

フィールド名やプロパティを設定/変更することができます (以下の段落参照)。
コピー/ペーストでフィールドを作成することができます:
- 複製するフィールドを選択し、標準の“コピー”コマンド (4Dの編集メニュー、コンテキストメニュー、Ctrl+C/Command+Cショートカット)。
- 新しいフィールドを作成するテーブルを選択し、編集メニューまたはコンテキストメニューからペーストコマンドを選択するか、Ctrl+V/Command+Vショートカットを使用します。
フィールドは同じ名称とプロパティで複製されます。対象のテーブルに同じ名称のフィールドが既に存在する場合、デーフォルトで“Copy_of_FieldName”という名称がつけられます。FieldNameは元のフィールド名です。同じフィールドの複数のコピーを作成すると、番号が追加されます。
注: コピー/ペーストでフィールドが作成された場合、インデックスプロパティは保持されません。
いつでもフィールド名を変更できます。4Dはそのフィールドが使用されているすべての場所 (フォーム、メソッド等) で名前を更新します。ただしフィールド名が更新されるときメソッドがエディタで開かれている場合、フィールド名の更新を有効にするにはいったんメソッドを閉じて開かなければなりません。
フィールド名はテーブル内でユニークでなければなりません。
ストラクチャーエディターやエクスプローラー、またはインスペクターパレットでフィールド名を更新できます。
フィールド名を直接更新するには (ストラクチャーエディターまたはエクスプローラーのテーブルページ):
- フィールド名上でクリックを2回行います (既に目的のフィールドが選択されている場合、1回クリック)。
または
(ストラクチャーエディターのみ) 名称変更するフィールドを選択して、Carriage returnを押します。
編集モードに切り替わります。 - 新しい名称を入力して、フィールドの外をクリックします。
ストラクチャーエディターのインスペクターパレットを使用してフィールドの名称を変更するには:
- フィールド上をダブルクリックします.
または
フィールド上で右クリックをし、コンテキストメニューからフィールドプロパティ...を選択します。
または
エクスプローラーのテーブルページでフィールド名をダブルクリックします。
4Dはインスペクターパレット上に選択したフィールドの名前とプロパティを表示します。パレットにはテーブル番号とフィールド番号も表示されます。
インスペクターパレットが既に表示されていて、他のフィールドやオブジェクトが表示されている場合は、指定するフィールドを選択すると、パレット上にその情報が表示されます。 - “名前”エリアに新しい名称を入力します。
新しい名称はただちに適用されます。
フィールドの命名規則はテーブルとフィールドの命名規則を参照してください。
ストラクチャーエディター中のテーブルに表示されるフィールドの表示順を変更することができます。テーブル中のフィールドの表示順を変更することで、、例えばストラクチャーの検証を容易にできます。
ストラクチャーエディター中でフィールドを並び替えても、アプリケーションの他のエディターには影響を与えません。実際4Dはフィールドを作成順 (フィールド挿入コマンドを使用した場合も含む) で表示します。ただしエクスプローラーなど一部のエディターでは文字の並び順で表示されます。
フィールドの表示順を変更するには2つの方法があります:
- フィールドをドラッグ&ドロップで移動して、手作業で並び順を変更する。この場合、Alt (Windows) またはOption (Mac OS) キーを押すとカーソルが手の形に変わり、フィールドを移動できるようになります:

この方法で実行されたカスタムソートは記憶され、必要な時にソートメニューのカスタムコマンドを使用することで再現できます (後述)。 - ソート条件を適用する。エディターのツールボタンに割り当てられたソートサブメニュを使用して複数のソート条件を使用できます:

オプションを選択すると、ウィンドウ上で選択されているテーブルすべてに適用されます。このメニューはテーブルが選択されていないと使用できません。
現在適用されているソート条件には、メニューにチェックマークが表示されます。選択したテーブルに異なる条件が使用されている場合、複数のチェックマークが表示されます。
選択できるソート条件は以下の通りです:
- 文字コード順: フィールドを文字順で表示します。
- タイプ: フィールドを型毎に表示します (型ごとに文字順で表示されます)。
- インデックスフィールド: インデックス付きフィールドを上に表示します。
- リレートしたフィールド: 主キー、それから外部キーの順に表示します。
- 表示設定: 表示されるフィールドを上に表示します。
- 作成: 作成順にフィールドを表示します (デフォルト)。
- カスタム: 特定のソートは適用されません。このオプションを選択すると、以前に手作業 (ドラッグ&ドロップ) で設定された並び順が復元されます。ドラッグ&ドロップを行っていない場合、このオプションは効果がありません。
注: フィールドをテーブルに追加すると、カレントのソート条件に関わらず、それは常に既存のフィールドの後に追加されます。
テーブルからフィールドを削除することができます。これは取り消すことができません。
この操作はSQLエンジンあるいはストラクチャーエディターを使用して4Dから行うことができます。
4DのSQL文に関する詳細は4D SQL Referenceマニュアルを参照してください。
ストラクチャーエディターでデータベースから1つ以上のフィールドを削除するには:
- 削除するフィールドを選択します。
同時に異なるフィールドのフィールドを削除できます。 - 4Dの編集メニューからクリアを選択します。
または
テーブルのコンテキストメニューから削除を選択します。
または
DeleteまたはBackspaceキーを押します。
警告ダイアログボックスが表示され、処理を続行できます。
OKをクリックすると、フィールドはストラクチャーから削除されます。そのフィールドのデータはデータファイルから削除されます。
データベースの安定性を損ねることを避けるため、フィールドが削除されてもテーブル中の他のフィールド番号は変更されません。このため4つのフィールドがあるテーブルで、それぞれのフィールド番号が1, 4, 6そして8であるということがあり得ます。
恒久的に削除されたフィールドの番号は、新しくフィールドが作成されるときに再利用される点に留意してください。