フィールド・ タイプ使用の推奨事項
新しいフィー ルドを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 |