4D v16.3データタイプ |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
データタイプ
|
データタイプ | フィールド | 変数 | 式 |
文字列 (*1) | ○ | ○ | ○ |
数値 (*2) | ○ | ○ | ○ |
日付 | ○ | ○ | ○ |
時間 | ○ | ○ | ○ |
ブール | ○ | ○ | ○ |
ピクチャ | ○ | ○ | ○ |
ポインタ | × | ○ | ○ |
BLOB (*3) | ○ | ○ | × |
配列 (*4) | × | ○ | × |
Integer 64 bits (*5) | ○ | × | × |
Float (*5) | ○ | × | × |
オブジェクト (*6) | ○ | ○ | ○ |
未定義 | × | ○ | ○ |
文字列とは、以下を示す総称です:
文字列とテキスト変数には違いはありません。
文字列をテキストフィールドに割り当てることもできますし、その逆も可能です。4Dは必要に応じて変換・切り落としを自動的に行います。式の中で、文字列とテキストは混ぜて使用することが出来ます。
注: このマニュアルでは、コマンド説明における文字列とテキストの引数は特に明記されていない限り、両方とも「文字列」と表記されています。
数値とは、以下を示す総称です。
実数データタイプの範囲は、±1.7e±308 (有効数字13桁) です。
整数データタイプ(2バイト整数)の範囲は、-32,768..32,767 (2^15..(2^15)-1)です。
倍長整数データタイプ(4バイト整数)の範囲は、-2^31..(2^31)-1です。
数値データタイプは、異なる数値データタイプに代入することができます。このとき、4Dが必要に応じて変換、切り捨て、丸め処理を行います。ただし、値が範囲外の場合には、変換は正しい値を返しません。数値データタイプは式の中に混在させて使用することができます。
注: このマニュアルでは、実際のデータタイプに関わらず、コマンド説明における実数、整数、倍長整数の引数は特に明記されていない限り、数値と表記されています。
注: このマニュアルでは、コマンド説明における日付引数は特に明記されていない限り、「日付」と表記されています。
JavaScriptにおいて日付はオブジェクトなので、4Dに送られる際には他のオブジェクト同様、JSON フォームを含んだテキストとして送られます。この原理は特に4D Mobile または Webエリア を使用する際に適用されます。
JavaScript 日付の JSON フォームは ISO 8601規格に基づき、 "2013-08-23T00:00:00Z"のように記述されます。
このテキストは、デベロッパが4Dの日付(C_DATE) へと変換してあげる必要があります。方法は二つあります。:
C_TEXT($1) // 日付をISOフォーマットで受け取る
C_DATE($d)
$d:=JSON Parse("\""+$1+"\"";Is date))
C_TEXT($1) // 日付をISOフォーマットで受け取る
C_DATE($d)
$d:=Date($1)
二つの方法の違いに注意して下さい。 JSON Parse コマンドは SET DATABASE PARAMETER を使用して設定された変換モードに従うのに対し、 Date コマンドはこれに依存しないという事です。 Date コマンドを使用した変換は、常にローカルのタイムゾーンを考慮するということです。
注: このマニュアルでは、コマンド説明における時間引数は特に明記されていない限り、「時間」と表記されています。
ブールのフィールド、変数、式は、TRUE(真)またはFALSE(偽)のいずれかになります。
注: このマニュアルでは、コマンド説明におけるブール引数は特に明記されていない限り、「ブール」と表記されています。
ピクチャのフィールド、変数、式は、任意のWindowsまたはMacintoshのピクチャになります。一般的に、ペーストボード上に置いたり、4Dコマンドやプラグインコマンドを使用してディスクから読み出すことのできる任意のピクチャがこれに含まれます。
注: このマニュアルでは、コマンド説明におけるピクチャ引数は特に明記されていない限り、「ピクチャ」と表記されています。
ポインタの変数または式は、別の変数(配列、配列要素を含む)、テーブルまたはフィールドへの参照です。ポインタタイプのフィールドは、存在しません。
注: このマニュアルでは、コマンド説明におけるポインタ引数は特に明記されていない限り、「ポインタ」と表記されています。
BLOBのフィールドまたは変数は、個別にまたはBLOBコマンドを使用して利用できる一連のバイト列(長さは0バイトから2ギガバイトまで)です。BLOBタイプの式は、存在しません。
注: このマニュアルでは、コマンド説明におけるBLOB引数は特に明記されていない限り、「BLOB」と表記されています。
オブジェクト型の変数、フィールド、式にはさまざまなデータを格納することができます。
4D のネイティブなオブジェクトの構造は、よくある「値/名前」というペア(連想配列)に基づいています。これらのオブジェクトの記法は JSON のそれをもとにしていますが、完全に同じというわけではありません。
オブジェクト型の変数、フィールド、式は オブジェクト(ランゲージ) テーマ内のコマンドによって操作します。また、[#cmd id="1331"/] や QUERY SELECTION BY ATTRIBUTE などの クエリ テーマの特定のコマンドもオブジェクト型フィールドに対して処理を行うことができます。
配列は、実際にはデータタイプではありません。さまざまな種類の配列(整数配列、テキスト配列等)はこの配列という名前の下にグループ化されています。配列は変数です。配列タイプのフィールドは存在せず、配列タイプの式も存在しません。配列の詳細については、配列の節を参照してください。
注: このマニュアルでは、コマンド説明における配列引数は特に明記されていない限り、「配列」と表記されています (例: テキスト配列や数値配列など)。
4D言語には、データタイプ間の変換を行う演算子やコマンドがあります。4D言語はデータタイプをチェックしています。例えば、"abc"+0.5+!12/25/96!-?00:30:45?のように記述することはできません。これは、シンタックス(構文)エラーになります。
次の表は、基本的なデータタイプ、変換できるデータタイプ、それを実行する際に使用するコマンドを示しています:
データタイプ | 文字列に変換 | 数値に変換 | 日付に変換 | 時間に変換 |
文字列(*) | Num | Date | Time | |
数値 (**) | String | |||
日付 | String | |||
時間 | String | |||
ブール | Num | |||
オブジェクト | JSON Stringify |
注: この表に示すデータ変換の他に、演算子と他のコマンドを組み合せることで、より洗練されたデータ変換を実行することができます。
プロダクト: 4D
テーマ: プログラミング言語の構成要素
ランゲージリファレンス ( 4D v16)
ランゲージリファレンス ( 4D v16.1)
ランゲージリファレンス ( 4D v16.2)
ランゲージリファレンス ( 4D v16.3)