4D v14.3

4Dのフィールドの型

ホーム

 
4D v14.3
4Dのフィールドの型

4Dのフィールドの型  


 

 

フィールドごとにフィールド型を指定しなければなりません。フィールド型は、4Dがフィールドのデータをどのように処理・格納するか、またフォーム上でのデータの入力や表示に影響します。
デフォルトで新しいフィールドには文字型が割り当てられます。

フィールド型を変更するには:

  1. テーブルイメージ上でフィールド型アイコンをクリックし、表示されるメニューから使用する型を選択します。

    または
    型を変更するフィールド上で右クリックし、コンテキストメニューのタイプサブメニューから新しい型を選択します。
    または
    型を変更するフィールドをインスペクターパレットに表示させ、タイプエリアのアイコンをクリックして型を変更します。

フィールド型は、フィールドにリレーションが設定されている、あるいは主キーに属する場合を除き、いつでも変更できます。これらのケースに該当する場合、フィールド型を選択するメニューは無効となります。フィールド型を変更するにはまずリレーションおよび主キーを取り除かなければなりません。
フィールドにデータを入力する前にフィールド型を変更した場合、4Dは単純にフィールド型を変更します。フィールドにデータを入力した後にフィールド型を変更した場合、4Dは可能であれば、データをロードする際にデータを新しい型に変換します。この変換がおこなわれても、そのレコードが更新されて保存されるまで、元のデータは保持されたままです。例えばテキストフィールドに“10以上”というデータが格納されていて、このフィールドの型を整数に変更すると、変更されたフィールドには“10”が表示されます。そのレコードを更新して保存をせずに、そのフィールドの型をテキストに戻すと、4Dは再び“10以上”を表示します。

ピクチャーフィールドを他の型に変換した場合、そのデータは表示されません。その逆も同様です。

デフォルトで4Dは以下のフィールド型をサポートします:

  • 文字: 1から255文字長までの文字
  • テキスト: 2 GBまでのテキスト
  • 日付: 100年から32,767年までの日付
  • 時間: 時:分:秒フォーマットの時間
  • ブール: TRUEまたはFALSE日のみをとるフィールド
  • 整数: -32,768から32,767の間の数値
  • 倍長整数: +/-2,147,483,647の数値
  • 整数64bit(1): +/- 2E64の8バイトの数値
  • 実数: ±1.7E±308の間の浮動小数点数
  • フロート(1): 浮動小数点数
  • BLOB (Binary Large Object): 画像、他のアプリケーション、ドキュメントなどすべてのバイナリーオブジェクト
  • ピクチャー: 4Dがサポートするネイティブフォーマットのピクチャー (4Dランゲージリファレンスのサポートされるネイティブフォーマット参照)

(1) これらの型は4DのSQLエンジンでのみ利用されます。これらのフィールドを4Dランゲージで使用すると、これらの値は内部的に実数に変換されます。

注: "文字列"という用語は文字あるいはテキストタイプを示し、"数値"は正数、倍長整数、整数64bit、実数またはフロート型を示します。

文字  

文字フィールドには文字 (文字と数字)、句読点、そしてアスタリスク (*) やパーセント (%)、ハイフン (-) などの記号を格納できます。255文字長を超えない、テキストとして扱われるべき情報を格納する場合に文字フィールドを使用します。

文字フィールドには標準インデックスあるいはキーワードインデックスを割り当てることができます。インデックスについてはインデックスの作成と変更を参照してください。

文字は最も一般的なタイプです。典型的にこのフィールド型は名前、住所、電話番号、郵便番号などに使用します。データ入力時、文字フィールドはすべての文字、数字、句読点、記号を受け入れます。

郵便番号には2つの理由で文字フィールドを使用します: 数値フィールドは先頭の0を表示せず、また郵便番号にはハイフンが含まれます。数値フィールドタイプと文字フィールドタイプどちらを使用するかは、数値としての計算を行うか、または数値としての並び替えを行うかどうかで決定します。

文字フィールドに格納できる最大文字長として、1から255を設定できます。

2つ以上の文字フィールドを結合することができます。例えば人名の姓と名をラベルフォームに印刷したい場合などです。メソッドでは以下のように記述します:

 FullName:=[Employees]FirstName+" "+[Employees]LastName

変数FullNameを表示したり印刷したりできます。あるいは情報の一部だけを別な変数にとりだすこともできます。

テキストフィールドはいくつかの点を除き、文字フィールドと同じです。

テキストフィールドには2GBまでの文字データを格納できます。一般的にテキストフィールドはコメントや説明など長い文章を保持するために使用します。

最適化のため、テキストフィールドの内容はレコードの外に保存することができます (フィールドプロパティの"レコードに格納"参照)。この場合フィールドに標準のインデックスを割り当てることはできません。文字フィールドと同様、テキストフィールドにはキーワードインデックスを割り当てることができます。インデックスについてはインデックスの作成と変更を参照してください。

詳細フォーム中で、テキストフィールドにスクロールバーを表示させることができます。印刷するレポートでは、すべての情報が印刷されるようテキストフィールドの大きさを (複数ページにわたって) 拡張できます。

データ入力中、テキストフィールドは基本的な編集機能 (スクロール、エリア中でのワードラップ、ダブルクリックでの文字の選択、矢印キーでの挿入ポイントの移動、そして標準のカット/コピー/ペースト処理) を提供します。複数行オプションが選択されていると、データ入力中テキストフィールドは改行を受け入れます (文字フィールドは受け入れません)。フォームオブジェクトプロパティでマルチスタイルオプションが設定されている場合、フィールドの内容を下線やボールド、フォントやサイズ、カラー指定などのスタイル付きテキストとして表示させることもできます。

テキストフィールドにワープロソフトなどからテキストをペーストできます。

注: テキストをレコードに格納する別の方法として4D Writeプラグインがあります。4D Writeでは、異なるフォント属性、段落揃えなど、標準のテキストフィールドでは利用できない他のワープロ機能を使用できます。他の4Dプラグインと同様、4D Writeエリアのデータはテキスト型ではなくBLOB型のフィールドに格納されます。4D Writeの利用に関する詳細は、 4D Write Language Referenceマニュアルの4D Writeランゲージの紹介等を参照してください。

日付  

開始日、購入日、誕生日などの日付データを格納する場合に日付フィールドを使用します。日付フィールドは100年から32,767年までの間の日付 (年/月/日) を格納することができます。

注: 言語設定が日本の場合、日付は年/月/日 (YYYY/MM/DD) のフォーマットで指定されます。他の言語設定では他のフォーマット (MM/DD/YYYYやDD/MM/YYYY) が使用されます。4DはコンピューターのOSに設定された言語のフォーマットに基づき、日付の入力を受け付け、表示します。

時間  

現在時刻、開始時刻、継続時間など時間を管理する際に時間型を使用します。時間フィールドにはHH:MM:SSフォーマットで入力された時間を格納できます。

ブールフィールド (論理フィールドと呼ばれることもあります) はTRUEまたはFALSE値を格納することができます。

ブールフィールドはチェックボックスあるいは2つペアのラジオボタンとしてフォーマットできます。チェックボックスではチェックされている状態がTRUE、されていなければFALSEです。ラジオボタンの場合、最初のラジオボタンが選択されていればTRUE、二番目が選択されていればFALSEです。

ブールフィールドには質問になるようなの名前を付けることができます。検索時には質問の答えがTRUEまたはFALSEでデータベース中のブールフィールドを検索できます。例えばブールフィールドに"Gender"ではなく“Male”と名前を付けます。この場合、"Gender is equal to TRUE"ではなく、"Male is equal to TRUE"という検索条件を書けます。

整数  

整数フィールドには-32,768から32,767までの、小数点を含まない整数値を格納できます。

倍長整数フィールドは、整数型にはおさまらない整数値を格納するために使用します。小数を含まない ±2,147,483,647の値を格納できます。

この型のフィールドは8バイトを使用し、とても大きな整数 (+/- 2E64) を格納するために使用できます。

注: この型のフィールドは4DのSQLエンジンのみで使用されます。このフィールドが4Dランゲージで使用されると、内部的に実数に変換されます。

実数  

実数フィールドには小数点を含む実数値を格納します。実数フィールドには小数を含む±1.7E±308の値を格納できます。
数値表示フォーマットは自動でシステムの地域パラメター設定が使用されます。4Dは千の桁区切りと小数点を、OSに設定された文字で置き換えます。

注: 4Dデータベースエンジンでは、十分な正確性を確保するために、実数の比較は常に10^-6 の epsilon 値を用いて行われます。データと計算の一貫性を保つために、 epsilon 値は変更することができません。具体的には、データベースエンジンは SET REAL COMPARISON LEVEL コマンドの影響を受けず、このコマンドは4Dランゲージ内で実行される処理のみに影響するという事です。実数で実行される計算特有の不正確性のため、実数型は、識別子などの正確な値を保存するために使用する事は推奨されません。

このフィールドは浮動総数点数を格納するために使用します。この型の数値は精度を失うことなく、実数値を格納することができます。

注: この型のフィールドは4DのSQLエンジンでのみ使用されます。このフィールドが4Dランゲージで使用されると、値は内部的に実数に変換されます。

Blob (Binary Large Object) フィールドはあらゆる種類のバイナリーデータを格納するために使用されます。例えば他のアプリケーションで作成されたドキュメント、スキャンしたピクチャー、あるいは他のアプリケーションを格納できます。BLOBには2GBまで格納できます。BLOBフィールドを含むレコードを処理する際、BLOB全体がメモリーにロードされます。

BLOBフィールドを使用してドキュメント管理システムを作成し、ユーザーのリクエストに応じてそれを配信するといったことができます。

4DのBLOBコマンドを使用してBLOBフィールドを管理できます。 DOCUMENT TO BLOBBLOB TO DOCUMENTコマンドを使用してBLOBフィールドにドキュメントを読み込んだり、ドキュメントを書き出したりできます。 COMPRESS BLOBEXPAND BLOB、およびBLOB PROPERTIESコマンドを使用して、BLOBを圧縮できます。BLOBの処理に関する詳細は、4D Language ReferenceマニュアルのDISABLE MENU ITEMを参照してください。

最適化のため、BLOBはレコードの外に保存されます。BLOBは必要な時にのみロードされます。例えば検索されたレコードを一件ロードする際などです。

BLOBはあらゆるタイプのデータを表現できるため、BLOBフィールドの内容をスクリーンに表示することはできません。

ピクチャーフィールドにはグラフィックアプリケーションを使用して作成されたデジタル化された写真、図表、地図、イラストなどを格納できます。ピクチャーはネイティブフォーマットで格納されます。ピクチャーにはPostScript™や (4D v12以降は) メターデータなど出力デバイスに特別な指示を与えるための追加の情報が格納されていることがあります。この情報はピクチャーがピクチャーフィールドにコピーされる際に一緒に格納され、4Dが対応するデバイスでピクチャーを印刷する際、あるいはメタデータの場合はGET PICTURE METADATASET PICTURE METADATAで使用できます。

最適化のため、ピクチャーはレコードの外に保存されます。ピクチャーは必要な時にのみロードされます。例えば検索されたレコードを一件ロードする際などです。4D v13より、ピクチャーをデータファイルの外に保存できるようにもなりました (データをデータファイル外に保存参照)。

4D v13 ではフィールドに格納された各ピクチャーごとにデフォルト名を記録できます。つまりユーザーによる書き出しやWRITE PICTURE FILEコマンド等を (fileName 引数に空の文字列を渡して ) 使用してピクチャーフィールドの内容をディスクに保存する際に使用されるデフォルトのファイル名を設定できます。フィールドの内容を変数や他のフィールドにコピーした場合、デフォルト名もコピーされます。

ピクチャーフィールドに格納されるピクチャーのデフォルト名を設定する方法は2つあります:

  • 新しいコマンドSET PICTURE FILE NAMEを使用してプログラムで行う。このコマンドを使用してピクチャーのデフォルトファイル名を割り当てられます。また新しいコマンドGet picture file nameを使用してピクチャーのデフォルト名を取得することもできます。
  • コンテキストメニューやREAD PICTURE FILEコマンドを使用してピクチャーフィールドにピクチャーファイルの内容を読み込む際は自動で設定されます。この場合 4D は元のピクチャーファイルの名前を記録します。

これは以下のように動作します:

  1. ユーザーがピクチャーフィールドにファイル名 logo64.png を読み込みます:
  2. 次にユーザーがレコードからピクチャーを書き出します。保存ダイアログには logo64.png というファイル名がデフォルトで表示されます (これはデフォルトで提案される名前であり、変更が可能です):

 
プロパティ 

プロダクト: 4D
テーマ: データベースストラクチャーの作成

 
ARTICLE USAGE

デザインリファレンス ( 4D v14 R2)
デザインリファレンス ( 4D v14.3)

Inherited from : 4Dのフィールドの型 ( 4D v13.4)
Parent of : 4Dのフィールドの型 ( 4D v14 R3)