現在地: Visual LANSA 開発者ガイド > 1. アプリケーション、フィールド、データベース、リポジトリの概要 > 1.6 アプリケーション・データベースの作成 > 外部テーブルの取り扱い
外部テーブルの取り扱い

外部テーブルのインポートを実行すると、このテーブルの列ををLANSAの列として表した「テーブル定義」が作られます。列は既存のものでもかまいませんが、なければ自動的に生成されます。既存の列定義をそのまま使うのは、列名、タイプ、長さ、小数点の位置などが完全に一致する場合に限ります。少しでも違えば、別に列定義を生成することになります。

データベースに固有のタイプで、LANSAが未対応のものがいくつかあります。テーブルのインポート処理では、そのようなタイプの列は無視されます。LANSAアプリケーションを使ってこのテーブルにデータを挿入するのであれば、本来このテーブルを管理するデータベースの側で、この列に省略値を設定しておく必要があります。

プライマリ・キーに無視された列が含まれている場合、IBM i テーブルであれば、通常、LANSAではプライマリ・キーのないテーブルという扱いになります。一方、Windows のインポート・テーブルの場合、一意のインデックスが別にあれば、これをプライマリ・キーとしてインポートし、1 つのインデックスとしてインポートされます。

インデックスのキーが無視された列に当たる場合、そのインデックスは読み込まれません。

RDMLXを有効にした区画に定義を読み込む場合、区画の保守ダイアログで該当するタイプを使用可と設定したか否かにかかわらず、LANSAに組み込まれた列タイプはすべて使えます。したがって、LANSAのインポート・テーブル操作機能はすべて、自動的に活用できるようになります。他のアプリケーションで新しいタイプを定義していても、それを意識する必要はありません。

状況によっては、生成された列のタイプや長さが想定通りでない、あるいは既存の列を再利用しようと考えていたのにそうならないことがあります。この場合、仮想列を追加して適宜変換してください。テーブルを読み込み直しても、この仮想列はそのまま残ります。

RDMLXを有効にした区画にDateTime型の列をインポートする場合、現地の時間帯で記録されたデータとみなします。他の時間帯のデータである場合はSUTC/DUTC属性を追加してください。詳細については、『LANSA テクニカル リファレンスガイド』の「Datetime」を参照してください。

外部テーブルのインポート後、外部テーブルの一部の列に対して、キーボードのシフト設定を変更できます。これを行うには、LANSAエディターで列を開き、列の [定義] タブに移動して、適切なキーボード・シフト値を選択します。

BLOBタイプまたはCLOBタイプの列しかない外部テーブルは扱えません。このような列の検索には、別の列が必要になるからです。

外部テーブルに識別列(自動番号づけ)があれば、これを認識した上で処理されます。詳細については、「識別列」を参照してください。

さまざまな理由により、列やテーブルを挿入/更新できない場合があります。インポート・テーブルに対して行を更新/挿入しようとしたとき、LANSA側に関係ないエラーが発生するようであれば、その原因を詳しく調べる必要があるでしょう。データベース側の規則に抵触する場合でも、LANSAで事前に確認することができなければ、データベース側にデータを渡した時点でエラーになる場合があります。そのような場合、LANSA側に妥当性規則を追加する必要があります。しかしこの方法でエラーを回避することができないのであれば、そのテーブルは読み込み専用として扱うべきです。インポート・テーブルであれば、問題のある列をテーブル定義から削除するか、テーブル自体に読み込み専用である旨の印をつけてください。

次のトピックも参照してください。

PC 外部テーブル

IBM i RDMLX外部テーブル

1.6.11 LANSAの内部テーブル