|
このレッスンでは、テーブル定義で設定されている可変長レコードとは異なる可変長レコードを持つ Btrieve ファイルがあります。
このレッスンの目的は、DDF Builder でファイルを開き、DDF Builder によってこの定義になんらかの変更が行われるかどうかを確認することです。DDF Builder が実施する変更を調べ、可変長レコードの不一致を修正するために必要となる変更について検討します。
メモ
現在、DDF Builder は可変長レコードの不一致を修正するための解決策を提示していません。
このレッスンでは VARTABLE.MKD というファイルを使用します。このファイルは Tutorial2 フォルダー内にあります。デフォルトのインストール先にインストールしている場合、このフォルダーは次の場所にあります。
このフォルダーは Tutorial2 データベースの一部です。
メモ
このチュートリアルのデータにアクセスするためには、このデータベースを指し示す DSN(データ ソース名)が必要です。まだ DSN を作成していない場合は、データ ソース名(DSN)の作成を参照してください。
すぐ前のレッスンから引き続き作業していれば DDF Builder は起動しているはずです。終了していた場合は、DDF Builder を起動してください。
テーブル定義エディターでは、次のメッセージが表示されます。
このメッセージは、DDF Builder で既存のテーブル定義を分析したら、その定義に問題があったということを知らせています。この結果、DDF Builder で既存のテーブル定義を開いて表示するために、いくつか修正を行う必要がありました。
ヒント
発生する可能性がある定義エラーの詳細については、テーブル定義エラーを参照してください。
まずは DDF Builder インターフェイスで、元の定義と DDF Builder による変更後の定義との違いを確認し、報告されたエラーについても再調査します。
テーブル定義エディターのグリッド データ ビューでは、変更済みのテーブル定義が示されます。
メモ
DDF Builder が行った変更は自動的に保存されません。DDF Builder による修正は保存する必要があります。
DDF Builder では、変更または追加されたフィールドに対して不明な列インジケーターを追加し、注目すべき列であることを視覚的に示します。また、可変長列インジケーターが可変長の列に追加されます。
ヒント
グリッド データ ビューにおける属性の詳細については、グリッド データ ビューでのフィールド属性を参照してください。
定義エラー ビューでは DDF Builder によって検出および変更された問題を表示します。
DDF Builder によって変更が行われる前の元のテーブル定義は、元の定義ビューで見ることができます。
定義エラー ビューでは以下のことを通知します。
定義エラーでは次の 2 つの問題を挙げています。
DDFBLDR-12 エラーは、テーブル定義の最後の列ではない可変長フィールドが原因で発生しています。このファイルにはレコードの最後の列以外の位置に可変長フィールドがあるため、DDF Builder ではこのフィールドのデータ型を "Unknown"(不明)に変更します。
ヒント
レッスン 3 - 不正なデータ型とサイズ では、列のデータ型がその列のサイズに対して不正だった場合の具体的な対処手順を提供しています。
可変長フィールドの問題を修正するには、不明なフィールドを適切なデータ型で定義します。これは次のセクションで説明します。
最後に報告されたエラーは、DDF Builder が既存のテーブル定義でインデックスを検出したが、それに対応するキーが Btrieve ファイルにはないという事象です。このレッスンの過程で、このエラーは解決されません。解決されるのは可変長フィールドについてだけです。インデックスに関するエラーを解決するためには、レッスン 6 - インデックスの不一致を参照してください。
テーブル定義エディターのグリッド データ ビューで、不明なフィールドを定義します。
メモ
テーブル定義に BLOB または CLOB データ型が含まれている場合、テーブルの可変長部分にある列を編集することはお勧めしません。
不明なフィールドを定義し、すべての問題を修正したら、テーブル定義を保存できます。
作業を保存する前に、もう一度テーブル定義を見直してください。
テーブル定義に未定義のフィールドがなく、すべてのバイトが明確に割り当てられています。これでテーブル定義を保存できます。
おめでとうございます。テーブル定義が保存され、可変長フィールドの修正に成功しました。このレッスンでは、レコードの最後にない可変長フィールドを DDF Builder でどのように処理するかをご紹介しました。また、フィールドを定義する方法と、ファイルに対して有効なテーブル定義を作成する方法についても説明しました。
|