フィールド・タイプ使用の推奨事項

新しいフィールドを LANSA ディクショナリに定義する場合は、以下の指針を参考にしてください。

  • フィールドが日付または時刻の場合は次の 3 つのケースを考慮します。
  • 固有の日付を格納する場合は、タイプDateを使用します。
  • 固有の日時を格納する場合は、日付フィールドと時刻フィールドを別々に設定するよりも、タイプDateTimeを使用します。
  • 固有でない時刻を格納する場合は、Timeを使用します(そのようなケースはまれです)。
  • 値が真偽 (True/False) である場合は、Boolean を使用します。
  • 数字の場合小数点以下がない場合はタイプIntegerを使用し、それ以外の場合はタイプPackedを使用します。
  • また、これは文字列または他のバイト・ストリームである必要があります。
  • 通常、特殊なタイプのファイルまたはドキュメント(例: 画像、音声、MS-Word文書またはXML文書)に保持される場合は、タイプBLOBを使用します。
  • 通常のコード・ページ変換が必要でない場合、必要データ長が常に同じでない限り、VarBinaryを使用します。データ長が常に同じ場合は、Binaryを使用することもできます。
  • フィールドが 256 バイト以下で、固定長フィールドとして保管するのが最適な場合、かつ、実行時、一つの言語でのサポートのみが必要な場合、タイプ Alpha を使用します。
  • データ長が 65535 バイトを超える場合は、タイプCLOBを使用します。
  • フィールドを、末尾ブランクが意味を持つ可変長フィールドとして保管する場合(フィールド連結操作に含まれる場合など)、実行時、一つの言語でのサポートのみが必要な場合、タイプ String を使用します。その他の場合は、タイプ NVarChar を使用します。
  • 他の固定長フィールドの場合で、実行時、一つの言語でのサポートのみが必要な場合、タイプ Char を使用します。この他の場合は、タイプ NChar を使用します。

他のすべてのタイプは、LANSA以外のデータベース・テーブルとの互換性のために用意されています。新しいDBMSテーブルの新しいフィールドや列を定義するときには、基本的にそれらのタイプを使用しないでください。

通常使用されるフィールド・タイプ

タイプ

説明

標準的なDBMSへの格納タイプ

ディクショナリで定義可能な最大長  

コード・ページ変換が必要

注記

RDMLまたはRDMLXプログラムで使用可能

Integer

整数

INTEGER

4 バイト


ハードウェアとコンパイラにより動作が異なる可能性あり

RDMLX

Packed

標準的な 10 進数

DECIMAL

RDMLX プログラム: 63 桁までで、そのすべての桁で 10 進数を使用可能
RDML プログラム:30 桁までで、そのうちの 9 桁で 10 進数を使用可能

N/A


両方

String

ディクショナリ定義に最大長がある可変長の英数文字列

VARCHAR (可変長)

65535

ディクショナリで定義されている最大長までブランクが埋め込まれない。ただし、長さ0の文字列には1個のスペースが追加される

RDMLX

VarBinary

コード・ページの変換がないこと以外は、String とまったく同じ

VARBINARY

32767

不要

ディクショナリ定義の最大長まで埋め込まれない

RDMLX

NVarChar

String と似ているがデータは Unicode として扱われる。実行時に多言語利用が可能

NVARCHAR

65535 文字

要 (ただし、ネイティブ String へ変換する場合のみ)


RDMLX

Alpha

ディクショナリ定義に最大長がある一定の長さの英数文字列

CHAR (固定長)

256

常にディクショナリ定義の最大長までブランクで埋め込まれる  

両方

Date

ISO 形式の日付 (YYYY-MM-DD)
 

DATE

N/A

N/A


RDMLX

Time

ISO 形式の時間 (HH:MM:SS)
 

TIME

N/A

N/A


RDMLX

DateTime

ISO 形式 YYYY-MM-DD HH:MM:SS[.fffffffff] の日付と時間。[.fffffffff] の部分の存在と長さは定義可能

DATETIME

29

N/A


RDMLX

Boolean

TrueまたはFalse。

10 進数

N/A

N/A


RDMLX

 特殊な文字とバイナリのタイプ(RDMLXプログラムのみで使用可能)

 タイプ

説明

標準的にDBMSへ格納されるタイプ

ディクショナリで定義可能な最大長 

使用される標準的なDBMSへの格納の長さ

コード・ページ変換が必要

重要なポイント

Char

固定長であることと、DBMSへの格納の実行が通常CHARである以外は、Stringとまったく同じ

CHAR

65535

固定長


Binary

DBMSの実装が多様であること以外は、VarBinaryとまったく同じ

BINARY

32767

固定または可変のいずれか

不要

固定長の列タイプを使用するデータベースでは最大長まで埋め込みが行われる

NChar

固定長であることと、DBMSへの格納の実行が通常NCHARである以外は、NVarCharとまったく同じ

NCHAR

65535

固定長

要 (ただし、ネイティブ String へ変換する場合のみ)


CLOB

文字ラージ
オブジェクト   

CLOB

未定義

内容により異なる

DBMSのパフォーマンスの考慮事項が適用される場合あり

BLOB

バイナリー
ラージ
オブジェクト

BLOB

未定義

内容により異なる

不要

DBMSのパフォーマンスの考慮事項が適用される場合あり

 ほとんど使用されない数値タイプ

タイプ

説明

標準的なDBMSへの格納タイプ

ディクショナリで定義可能な最大長 

使用するケース

重要なポイント

RDMLまたはRDMLXプログラムで使用可能

Signed

Signed (符号付き) 10進数、または Zoned (ゾーン) 10進数

DECIMAL

RDMLX プログラム:63 桁までで、そのうちの 63 桁で 10 進数を使用可能
RDML プログラム:30 桁までで、そのうちの 9 桁で 10 進数を使用可能

プログラムによる数値と文字のオーバーレイ操作用  

算術演算では、SignedはPackedやIntegerより効率に劣る

両方

Float

Floating Point (浮動小数点)

FLOAT

未定義
浮動小数点数は厳密な数値ではなく、近似値

LANSA以外で定義されているDBMSテーブルでのみ使用する場合

ハードウェアとコンパイラにより動作が異なる可能性あり

RDMLX

  • No labels