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

LANSA

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


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

·         フィー ルドが日付または時刻の場合は次の3つのケースを考慮します。

·         固 有の日付を格納する場合は、タイプDateを 使用します。

·         固 有の日時を格納する場合は、日付フィールドと時刻フィールドを別々に設定するよりも、タイプDateTimeを 使用します。

·         固 有でない時刻を格納する場合は、Timeを 使用します(そのようなケースはまれです)。

·         数 字の場合は、小数点以下がない場合はタイプ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

Time はISO形式のHH:MM:SS

TIME

N/A

N/A

 

RDMLX

DateTime

ISO 形式YYYY-MM-DD HH:MM:SS[.fffffffff]でのDateとTime。[.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桁までで、そのすべての桁で10進数を使用可能

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

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

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

両 方

Float

Floating Point(浮動小数点)

FLOAT

未 定義

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

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

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

RDMLX

Ýフィールド・タイプについて