|
このレッスンでは、不正なデータ型とサイズを持つ Btrieve ファイルがあります。この結果、データは理解できるような書式に設定されません。
このレッスンの目的は、DDF Builder で Btrieve ファイルの既存のテーブル定義を開くことです。Btrieve 型ビューですべてのデータ型とサイズを調べて必要な変更を行い、フィールドのサイズに対して的確なデータ型でデータが書式設定されるようにします。
このレッスンでは、TYPE_SIZE.MKD というファイルを使用します。このファイルは Tutorial2 フォルダー内にあります。デフォルトのインストール先にインストールしている場合、このフォルダーは次の場所にあります。
このフォルダーは Tutorial2 データベースの一部です。
メモ
このチュートリアルのデータにアクセスするためには、このデータベースを指し示す DSN(データ ソース名)が必要です。まだ DSN を作成していない場合は、データ ソース名(DSN)の作成を参照してください。
Btrieve ファイルを開く
すぐ前のレッスンから引き続き作業していれば DDF Builder は起動しているはずです。終了していた場合は、DDF Builder を起動してください。
テーブル定義エディターでは、次のメッセージが表示されます。
このメッセージは、DDF Builder で既存のテーブル定義を分析したら、その定義に問題があったということを知らせています。この結果、DDF Builder で既存のテーブル定義を開いて表示するために、いくつか修正を行う必要がありました。
ヒント
発生する可能性がある定義エラーの詳細については、テーブル定義エラーを参照してください。
まずは DDF Builder インターフェイスで処理対象の不一致を確認します。特に、グリッド データ ビューと定義エラー ビューを見てください。
テーブル定義エディターのグリッド データ ビューでは、既存のテーブル定義に対して DDF Builder が行った変更を反映したテーブル定義が表示されています。
メモ
DDF Builder が行った変更は自動的に保存されません。DDF Builder による修正は保存する必要があります。
この例で、DDF Builder は新たに作成したフィールドや、DDF Builder がデータ型を「不明」に変更したフィールドに対して不明な列インジケーターを追加することにより、注目すべき列を視覚的に示しています。
ヒント
グリッド データ ビューにおける属性の詳細については、グリッド データ ビューでのフィールド属性を参照してください。
定義エラー ビューでは DDF Builder によって検出および変更された問題を表示します。
DDF Builder によって変更が行われる前の元のテーブル定義は、元の定義ビューで見ることができます。
定義エラー ビューでは以下のことを通知します。
定義エラーでは次の 3 つの問題を挙げています。
1 番目のエラーは、元のテーブル定義では定義されていないバイト群がファイルに含まれていることを示しています。 DDF Builder はこれら未定義のバイトを新しい列として作成し、その列に "フィールド6" という名前を付けました。
また、このファイルには列のデータ型がその列のサイズに対して不正な 2 つのフィールド(Age と dob)があります。どちらも、フィールドの型が "Unknown"(不明)に変更されています。Age 列について詳しく見る前に、まず DDF Builder で判断できることとできないことを確認します。
DDF Builder では、指定したデータ型に対して有効なサイズを確かめることはできませんが、指定したサイズに対して有効なデータ型を検証することはできます。 DDF Builder では問題を検出して一般的な変更を行い、その変更を記録することはできますが、選択されたデータ型が正しいかどうかを判断することはできません。
DDF Builder ではフィールドのサイズに応じて選択できるデータ型が制限されます。たとえば Age 列の不正なデータ型とサイズについて見てみると、サイズが 4 バイトになっています。グリッド データ ビューの[Btrieve 型]ドロップダウン リストには、4 バイトのサイズに対して適用可能なデータ型のみが設定されます。DDF Builder で選択可能なデータ型を 1 つずつ試してみるのではなく、Btrieve 型ビューや[プレビュー]ページでそのデータを見て適切なデータ型を判断してください。
次に、4 バイトのサイズに対して適用可能なデータ型を調べ、ファイルのデータをプレビューしてどのデータ型が最も適しているかを見ます。
フィールド サイズに対して有効なデータ型で書式設定されたデータを見るには、テーブル定義エディターの左側にある[Btrieve 型]タブの Btrieve 型ビューを使用します。
ヒント
テーブル定義の Age 列を選択すると、次で説明しているように[Btrieve 型]タブで特定のデータを見ることができます。
ヒント
Btrieve 型ビューの詳細については、Btrieve 型を参照してください。
Integer および Unsigned Binary データ型はいずれもデータを適切に受け入れて理解できるように書式設定します。また、どちらのデータ型も 1、2、4 および 8 バイトをサポートします。このため、どちらかのデータ型を選択するための決定的な理由はないように思われます。この例は、テーブル定義を作成または変更する場合には、データの基本的な構造を知っておく必要があることを端的に示しています。
有効なデータ型と書式設定されたデータを再検討し、Age 列には Integer データ型を選択することにします。
これで 1 番目のテーブル定義エラーが解決されました。しかし、ほかのエラーを解決するまではテーブル定義を保存することができません。
ヒント
データ型が "Unknown"(不明)になっているものをすべて解決し、レコード内の未定義バイトを明確に割り当てるまで、テーブル定義を保存することはできません。
次のエラー対象の 2 つのフィールドは並んでいるので集合的に見ることができます。残りの 2 つのテーブル定義エラーを解決するには、これらを単一のエラーとして考える必要があります。
まず、dob フィールドに定義されていたデータ型(Date)は 2 バイトの列サイズに対して有効ではない、という点に DDF Builder が注目したことがわかります。その結果、DDF Builder はこのデータ型を "Unknown"(不明)に変更しました。
次に、元のテーブル定義では定義されていない 2 バイトがあります。DDF Builder はこれらの 2 バイトから新しい列(フィールド6)を作成し、"Unknown" データ型を割り当てました。
dob フィールドの用途に適したデータ型は Date ですが、この Date データ型は 4 バイトのフィールドが必要です。"dob" 列" と "フィールド6" 列をマージすれば、Date データ型に適合する 4 バイトのフィールドを作成できます。2 つの列をマージして Date データ型を使用した場合、1 番目のエラーでも行ったように、そのデータが適切に受け入れられ理解できるような書式になっているかどうかを検証する必要があります。
この情報の入力後に残りの列フィールドを見てみると、Date データ型を追加したことによってレコードのデータが適切に書式設定されることがわかります。
[プレビュー]ページで、Date データ型で書式設定されたデータがどのように処理されるかを確認することをお勧めします。
[プレビュー]ページの dob 列を見て、全データが適切に受け入れられ理解できる書式で設定されていることを確認できます。
これでテーブル定義が完了したので、この作業を保存して変更を有効にしてください。作業を保存する前に、もう一度テーブル定義を見直してください。データ グリッド ビューは次のようになります。
Btrieve 型がすべて定義されていること、未定義のフィールドが残っていないこと、またすべてのバイトが明確に割り当てられていることが一目でわかります。これでテーブル定義を保存できます。
このレッスンでは、データ型とサイズが適合しない場合に DDF Builder でどのように処理されるかをご紹介しました。不正なデータ型やサイズが既存のテーブル定義内でどのように表示されるかを示し、サイズとデータ型が適合して情報が適切に正しく表示できるようテーブル定義を変更するための解決例をいくつか提供しました。
|