DDF Builder User's Guide (v11)

レッスン 8 - レコード長の不一致

シナリオ

このレッスンでは、テーブル定義で設定されているレコード長とは異なるレコード長を持つ Btrieve ファイルがあります。

目的

このレッスンの目的は、DDF Builder でファイルを開き、DDF Builder によってこの定義になんらかの変更が行われるかどうかを確認することです。DDF Builder が実施する変更を調べ、レコード長の不一致を修正するために必要な変更について検討します。


ヒント

DDF Builder はレコード長の不一致を修正するための解決策を提示し、それらの変更を保存できるようにします。


必要な知識

このレッスンでは rec_length.MKD というファイルを使用します。このファイルは Tutorial2 フォルダー内にあります。デフォルトのインストール先にインストールしている場合、このフォルダーは次の場所にあります。

<Application Data>¥DDFBUILDER¥TUTORIALS¥TUTORIAL2 

このフォルダーは Tutorial2 データベースの一部です。


メモ

このチュートリアルのデータにアクセスするためには、このデータベースを指し示す DSN(データ ソース名)が必要です。まだ DSN を作成していない場合は、データ ソース名(DSN)の作成を参照してください。


Btrieve ファイルを開く

すぐ前のレッスンから引き続き作業していれば DDF Builder は起動しているはずです。終了していた場合は、DDF Builder を起動してください。

  1. DDF Builder のデータ ソース エクスプローラーで、[データベース]ノードを展開し、一覧から TUTORIAL2 データベースを見つけます。



  2. TUTORIAL2 データベース アイコンをダブルクリックしてそのノードを展開します。
  3. ノードをさらに展開して REC_LENGTH.MKD ファイルを探し、それに関連付けられている SQL テーブルを表示します。



  4. rec_length SQL テーブル名をダブルクリックするか、右クリックして[テーブル定義の編集]をクリックします。

テーブル定義エディターでは、次のメッセージが表示されます。

このメッセージは、DDF Builder で既存のテーブル定義を分析したら、その定義に問題があったということを知らせています。この結果、DDF Builder で既存のテーブル定義を開いて表示するために、いくつか修正を行う必要がありました。

  1. OK]をクリックすると、このメッセージがクリアされテーブル定義が表示されます。

    ヒント

    発生する可能性がある定義エラーの詳細については、テーブル定義エラーを参照してください。


不一致を探す

まずは DDF Builder インターフェイスで、元の定義と DDF Builder による変更後の定義との違いを確認し、報告されたエラーについても再調査します。

テーブル定義エディターのグリッド データ ビューでは、変更済みのテーブル定義が示されます。


メモ

DDF Builder が行った変更は自動的に保存されません。DDF Builder による修正は保存する必要があります。


DDF Builder では、変更または追加されたフィールドに対して不明な列インジケーターを追加し、注目すべき列であることを視覚的に示します。


ヒント

グリッド データ ビューにおける属性の詳細については、グリッド データ ビューでのフィールド属性を参照してください。


定義エラー ビューでは DDF Builder によって検出および変更された問題を表示します。

DDF Builder によって変更が行われる前の元のテーブル定義は、元の定義ビューで見ることができます。

エラーについて理解する

定義エラー ビューでは以下のことを通知します。

定義エラーでは次の 1 つの問題を挙げています。

問題が発生した場所
DDF Builder で検出された問題
必要な対処
列:フィールド6
DDFBLDR-6:テーブル定義内に未定義のバイトがあります。不明な列を追加しました。
DDF Builder が未定義のバイトを明らかにするために追加した不明な列を定義する必要があります。

DDF Builder によって報告されたエラーは、レコード長の不一致を示しています。


ヒント

統計情報]タブをクリックすると、Btrieve ファイルの元のレコード長を調べることができます。


これは、レコードのすべてのバイトに当たるフィールドがテーブル定義に含まれていなかったことを意味します。 このようなバイトを明らかにするために、DDF Builder は新しい列を不明なデータ型として作成しました。

すべてのバイトを定義して明確に割り当て、Btrieve ファイルと正確に一致するテーブル定義を作成します。グリッド データ ビューの下部にある "フィールド6" の行を見てください。

レコード長が Btrieve ファイルとテーブル定義で一致するよう、不明なフィールドを定義することができます。

フィールドを定義する

次に、テーブル定義エディターのグリッド データ ビューで、不明のフィールドを定義します。

  1. グリッド データ ビューで最後の行をクリックして選択します。
  2. "フィールド6" フィールドを選択し、フィールド名として「City」と入力します。
  3. ヌル]チェック ボックスのチェックをオンにします。
  4. サイズ]で値を 50 バイトに変更してください。
  5. Btrieve 型]列のドロップダウン リストから "String" を選択します。
  6. 大小文字無視]チェック ボックスをオンにします。

テーブル定義は次のようになります。

  1. グリッド データ ビューで "フィールド7" 行をクリックして選択します。
  2. "フィールド7" フィールドを選択し、フィールド名として「Income」と入力します。
  3. Btrieve 型]列のドロップダウン リストから "Money" を選択します。
  4. 桁数]の値は 10 に、[小数位]の値は 2 にします。

テーブル定義は次のようになります。

これで不明なフィールドはすべて定義され、すべてのバイトは明確に割り当てられたので、テーブル定義を保存します。

定義を保存する

行った変更を保存して適用できるようテーブル定義を保存します。

  1. メニューから、[ファイル保管]を選択するとテーブル定義が保存されます。

終わりに

おめでとうございます。テーブル定義が保存され、レコード長の不一致が適切に修正されました。このレッスンでは、レコード長が異なる場合に DDF Builder でどのように処理されるかをご紹介しました。また、フィールドを定義する方法や、サイズを変更して列を分割したり、ファイルに対して有効なテーブル定義を作成する方法についても説明しました。


レッスン 7 - 可変長レコードの不一致