DDF Builder User's Guide (v11)

レッスン 5 - ファイル/フィールド フラグの不一致

シナリオ

このレッスンでは、テーブル定義で設定されている SQL 列フラグと一致しないフラグ設定のフィールドを持つ Btrieve ファイルがあります。

目的

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

必要な知識

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

<Application Data>¥DDFBUILDER¥TUTORIALS¥TUTORIAL2 

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


メモ

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


Btrieve ファイルを開く

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

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



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



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

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

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

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

    ヒント

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


不一致を探す

まずは DDF Builder インターフェイスで処理対象の不一致を確認します。最初に、グリッド データ ビューと定義エラー ビューを見てください。

テーブル定義エディターのグリッド データ ビューでは、既存のテーブル定義に対して DDF Builder が行った変更を反映したテーブル定義が表示されています。


メモ

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


このレッスンの場合、DDF Builder は注目すべき列について視覚的なインジケーターを何も示しません。フィールドが変更されていることを示す不明な列インジケーターはありません。


ヒント

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


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

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

テーブル定義の不一致の詳しい説明に進む前に、DDF Builder によって報告された定義エラーを理解しておいてください。

エラーについて理解する

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

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

問題が発生した場所
DDF Builder で検出された問題
必要な対処
列:lastName
DDFBLDR-9:SQL 列の大小文字無視フラグが Btrieve セグメントの大小文字無視フラグと一致していません。列の大小文字無視フラグが変更されます。
エラー対象のフィールドに大小文字無視フラグを設定するかどうかを検証し、DDF Builder による変更を受け入れるか、または拒否する必要があります。

このエラーは、SQL 列に対して大小文字無視フラグが設定されているが、対応する Btreive セグメントにはこのフラグが設定されていないことを示しています。DDF Builder は Btrieve ファイルを変更しないので、SQL テーブルは Btrieve ファイルの仕様に一致するよう変更されます。この状況を確かめるには、現在のテーブル定義を元の定義と比較します。

定義エラーでは lastName 列の大小文字無視の設定に問題があることを示しています。現在のテーブル定義と元のテーブル定義の lastName フィールドを比較すると、この違いがすぐにわかります。

この比較によって、以下のことが判断できます。

DDF Builder は Btrieve ファイルに基づいて変更を行います。DDF Builder では Btrieve ファイルを変更できません。変更できるのは Btrieve ファイルの構造を決定するテーブル定義のみであることを覚えておいてください。そのような訳で、DDF Builder は(大小文字無視フラグのない)元の定義を変更して、lastName フィールドで大小文字無視フラグを利用できるようにしました。


メモ

lastName フィールドはインデックスとして使用されます。このため、lastName フィールドの大小文字無視フラグの設定をクリアすることはできません。


変更を受け入れるまたは拒否する

定義エラーの原因を究明し、DDF Builder が行った変更について理解しました。ここで、DDF Builder がテーブル定義に対して行った変更を受け入れるか、または拒否する必要があります。

DDF Builder が行った変更が正しくなければ、その変更を拒否して最初からテーブル定義を作成し直してください。これは、インデックスとして指定されているフィールドの大小文字無視の設定は変更できないためです。

ただし、このレッスンの目的は DDF Builder が行った変更を受け入れることです。lastName フィールドには大小文字無視フラグを設定します。

テーブル定義を保存する

テーブル定義エラーと変更について確認できたら、この作業を保存して変更を有効にしてください。作業を保存する前に、もう一度テーブル定義を見直してください。データ グリッド ビューは次のようになります。

Btrieve 型がすべて定義されていること、未定義のフィールドが残っていないこと、またすべてのバイトが明確に割り当てられていることが一目でわかります。これでテーブル定義を保存できます。

  1. メニューから、[ファイル保管]を選択するとテーブル定義が保存されます。
    更新されたテーブル定義が保存され、lastName フィールドに対して大小文字無視フラグを設定できました。

終わりに

このレッスンでは、Btrieve ファイルと既存のテーブル定義でフラグ設定が異なる場合に DDF Builder でどのように処理されるかをご紹介しました。DDF Builder によって行われた変更を、グリッド データ ビューと元の定義ビューを使用して比較できることも示しました。また、DDF Builder ではインデックスとして設定されているフィールドに対する変更が行えないことも示しました。DDF Builder によって行われた変更を拒否する、または受け入れるための方針についても説明しました。


レッスン 4 - 列の定義の重複

レッスン 6 - インデックスの不一致