DDF Builder User's Guide (v11)

レッスン 1 - v3.00 の DDF を使った作業

シナリオ

このレッスンでは、既存のテーブル定義セットを持つ 1 つのデータベースがあります。このテーブル定義は旧バージョンの Pervasive.SQL で作成されたもので、今回リリースされた DDF Builder でサポートされる Pervasive PSQL とはもう互換性がありません。


注意

DDF Builder ではバージョン 4.xx の DDF をサポートしますが、Scalable SQL バージョン 4.xx より前に作成された DDF はサポートしません。


目的

このレッスンの目的は、DDF Builder でその DDF を開くことです。このチュートリアルでは、DDF Builder でこれらのファイルがどのように処理されるかを説明し、またそのファイルを DDF Builder と互換性を持つファイルへ変換できるようにする解決策を提供します。

必要な知識

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

<Application Data>¥DDFBUILDER¥TUTORIALS¥TUTORIAL2¥V3 

作業を続ける前に、このデータベース用の DSN を作成する必要があります。


メモ

DSN の作成について情報が必要な場合は、データ ソース名(DSN)の作成を参照してください。


Btrieve ファイルを開く

DDF Builder をまだ実行していない場合は起動します。

  1. DDF Builder のデータ ソース エクスプローラーで、[データベース]ノードを展開して使用可能データベースをすべて表示します。
  2. 一覧から V3 データベースを見つけます。



  3. V3 データベース アイコンをダブルクリックします。
    次のメッセージが表示されます。



  4. OK]をクリックしてこのメッセージ ウィンドウを閉じます。

本来、これらのファイルは、現在ではサポートされていないバージョンの製品で作成されているため開くことができません。

警告メッセージを理解する

DDF Builder では Scalable SQL v3.00 のデータ辞書ファイルを開くことができません。これはその時点(Scalable SQL 3.01)で使用されていたフォーマットが現在サポートされていないからです。


ヒント

DDF Builder は Pervasive PSQL v9.x 以上のバージョンでサポートされます。Scalable SQL v4.00 以上で作成された DDF は Btrieve データ ファイル v6.x 以上と一緒にサポートされます。


ファイルを変換する方法

古い DDF がある場合はそれらを新しいフォーマットに変換する必要があります。以下の手順を使用します。

  1. 既存の古いデータベースをバックアップするため、データ ファイルと DDF を別の保存場所にコピーします。
  2. Pervasive PSQL Control Center(PCC)を使用して古いデータベースの全テーブルのテーブル スキーマをエクスポートします。『Pervasive PSQL User's Guide』の「すべてのテーブル スキーマを一度にエクスポートするには」を参照してください。 ["IN DICTIONARY" 句を CREATE ステートメントに追加する]エクスポート オプションを必ず選択しておいてください。
  3. エクスポート ファイルの CREATE INDEX ステートメントで、各テーブルのインデックス セグメントが正しい順序で置かれていることを確認してください。
    テーブルのインデックスは元のデータ ファイルと同じ順序になっていなければなりません。エクスポートされるテーブル スキーマはインデックスをアルファベット順に置くので、このステートメントを並べ替える必要があるかもしれません。
    インデックスの順序を調べるには、元のデータ ファイルに対して butil -stat コマンドを使用します。『Advanced Operations Guide』の 「データ ファイル情報の表示」 を参照してください。また、dbo.fSQLStatistics カタログ関数を使用して調べることもできます。『SQL Engine Reference』の dbo.fSQLStatistics を参照してください。
  4. 一般的には、古いファイルを変換するので、次の行をエクスポート スキーマ ファイルの先頭行として追加する必要があります。
    SET TRUE
    NULLCREATE = OFF;
    次の行を、ファイルの最終行として追加します。
    SET TRUENULLCREATE = ON;
  5. PCC で新しいデータベースを作成します。『Pervasive PSQL User's Guide』の「新規データベースを作成するには」を参照してください。
  6. PCC の SQL Editor で、エクスポート スキーマ ファイルの CREATE TABLE SQL ステートメントを新しいデータベースに対して実行し、すべてのテーブルを作成します。『Pervasive PSQL User's Guide』の 「SQL スクリプトを開くには」を参照してください。
  7. 古いデータベースから古い Pervasive PSQL データ ファイル(DDF 以外)を、新しいデータベース データ ファイル用の保存場所にコピーします。
    SQL を使用(PCC などを使用)して既存のデータにアクセスできるようになります。
  8. DDF Builder を使用して、定義がなかった Btrieve ファイルに対しテーブル定義を作成し、また問題のある定義を修正します。変換に関する注意も参照してください。
  9. 必要であれば、データ ファイルをリビルドします(6.x 以前のファイル形式の場合に必要となる可能性があります)。Btrieve データ ファイルのリビルドの詳細については、次のセクションレッスン 2 - v6.x より前のファイル形式での作業に進んでください。

変換に関する注意

上記の手順は、シンプルなデータ ファイルに対する最も基本的な作業です。まずはこの手順を試して変換の結果を調べてください。

以下の 2 つの状況がある場合は、さらに作業が必要です。

オルタネート コレーティング シーケンス

テーブルの列がオルタネート コレーティング シーケンス(ACS)を使用する場合、CREATE TABLE ステートメントを手動で変更する必要があります。 PCC ではテーブル スキーマをエクスポートするときに ACS を含めません。

列が ACS を使用しているかどうかを調べるには、DDF Builder でテーブルの一貫性を確認します(テーブルの一貫性のチェックを参照)。属性と物理キーファイル セグメントが一致しないというメッセージが通知された場合、その列は ACS を使用しています。

次の例は変更済みの CREATE TABLE ステートメントで、コレーティングが手動で追加されています。

SET TRUENULLCREATE = OFF; 
CREATE TABLE "PATAPP" IN DICTIONARY USING 'PATAPP.DTA' (  
    "ID" CHAR(6) NOT NULL COLLATE 'UPPER.alt',  
    "Appointment Date" DATE NOT NULL,  
    "Appointment Time" TIME NOT NULL,  
    "AMPM" CHAR(4) NOT NULL COLLATE 'UPPER.alt',  
    "Doctor" CHAR(12) NOT NULL,  
    "Code" CHAR(3) NOT NULL COLLATE 'UPPER.alt',  
    "Amount Paid" MONEY(14,2) NOT NULL,  
    "Date Paid" DATE NOT NULL); 
CREATE INDEX "index_0" IN DICTIONARY ON "PATAPP" (  
    "Appointment Date" ,  
    "AMPM" ,  
    "Appointment Time" ); 
CREATE INDEX "index_1" IN DICTIONARY ON "PATAPP" (  
    "ID" ); 
CREATE INDEX "index_2" IN DICTIONARY ON "PATAPP" (  
    "Code" ); 
SET TRUENULLCREATE = ON; 

また、インデックスの順序がテーブルに対して正しくない場合は、CREATE INDEX ステートメントを並び替えて正しい順序でインデックス セグメントを置く必要があります。

PCC および DDF Builder の使用を必要とするテーブル定義

テーブル定義によっては、解決が困難なため PCC と DDF Builder の両方を使用する必要がある場合もあります。列が DDF Builder で "不明" と示された場合は、PCC の Table Editor でその列が含まれるテーブルを表示し、DDF Builder 側でその列を同様に定義する必要があります。両方のユーティリティを用いて作業することにより、テーブル定義を完了させることができます。

終わりに

このレッスンでは、DDF Builder で Scalable SQL v3.01 の DDF がどのように処理されるかをご紹介し、またそれら DDF を本ソフトウェアの現行バージョンで作業できるように変換するための解決策も提供しました。

また、Scalable SQL v3.01 の DDF で作成されたデータベースには、v6.x より前のファイル形式の Btrieve データ ファイルが含まれている可能性があるので、それらのファイルも DDF Builder を使用する前にリビルドしておく必要があることも学習しました。


チュートリアル 2 - DDF Builder でテーブル定義を変更する

レッスン 2 - v6.x より前のファイル形式での作業