ディスクリプション ファイル
ディスクリプション ファイルを使用して Btrieve ファイル情報を保存する
ディスクリプション ファイルは、Maintenance ユーティリティがデータ ファイルやインデックスの作成に使用するファイル スペックとキー スペックの記述を含む ASCII テキスト ファイルです。作成したファイルの情報を保存するための媒体としてディスクリプション ファイルを使用することもできます。ディスクリプション ファイルは、リレーショナル エンジンで使用されるデータ辞書ファイル(DDF)とは異なります。
ディスクリプション ファイルには 1 つ以上の要素が含まれます。1 つの要素は、キーワード、等号(=)、それに値がスペースなしで続く形式で構成されます。ディスクリプション ファイルの各要素は、データ ファイルまたはキー スペックの特性に対応しています。
メモ: ディスクリプション ファイルを使用する前に、Btrieve の基本について熟知しておく必要があります。 これらのトピックスの詳細については、『PSQL Programmer's Guide』を参照してください。
この付録では以下の項目について説明します。
ディスクリプション ファイルの規則
ディスクリプション ファイルを作成する際は、以下の規則に従います。
•要素は、大文字または小文字のいずれかで入力する。
•要素を区切る場合は、以下の例のように、区切り文字(スペース、タブ、またはキャリッジ リターン/ライン フィード)を使用する。
record=4000
key=24
•ディスクリプション ファイルの要素を適切な順序で指定する。表
82 に要素の適切な順序が示されています。
•要素の依存関係は、すべて指定する。たとえば、ディスクリプション ファイルで nullkey=allsegs を指定した場合は、value= という要素の値も指定します。
•キーには、キー数要素で指定した数と同じ数のキーを定義する。たとえば、key=12 を指定した場合は、ディスクリプション ファイルでも 12 個のキーを定義します。
•キーに複数のセグメントがある場合は、各キー セグメントに以下の要素を定義する。
•キー ポジション
•キー長
•重複キー値
•変更可能キー値
•キー タイプ
各セグメントの降順ソート要素は、省略可能です。
•ファイル中のキーで ACS を使用している場合は、ACS ファイル名、カントリ ID とコード ページ ID、または ISR テーブル名を指定する。この情報は、キーの最後の要素(現在のキーのみに適用)またはディスクリプション ファイルの最後の要素(データ ファイル全体に適用)として含めることができます。
•1 つのキーに対して指定できる ACS は 1 つのみで、ACS ファイル名、カントリ ID とコード ページ ID、または ISR テーブル名も指定します。同一ファイル中の異なるキーには、異なる形式の ACS が使用できます。たとえば、キー 0 に ACS ファイル名、キー 1 にカントリ ID およびコード ページ ID を使用できます。
•同一キーの異なるセグメントに、異なる ACS を使用することはできません。
•ディスクリプション ファイルの最後に ACS を指定した場合は、その ACS がデフォルトとして使用されます。たとえば、alternate=y を指定し、ACS ファイル名、カントリ ID とコード ページ ID、または ISR テーブル名を指定しない場合、データベース エンジンでは、ファイルの最後に指定されている ACS ファイル名、カントリ ID とコードページ ID、または ISR テーブル名を使用します。
•新しいキーを作成する際に alternate=y を指定し、ACS ファイル名、カントリ ID とコード ページ ID、または ISR テーブル名を指定しない場合、データベース エンジンでキーは作成されません。
•ディスクリプション ファイルの要素がオプションの場合は、それを省略することができる。
•ディスクリプション ファイルには、書式設定文字列を使用しない。一部のワード プロセッサでは、テキスト ファイルに書式設定文字列が埋め込まれます。
ディスクリプション ファイルの例
このセクションにあるディスクリプション ファイルのサンプルは、データ ファイルの説明です。このデータ ファイルのページ サイズは 512 バイトで、キーは 2 つです。レコードの固定長部分は 98 バイトです。ファイルで可変長レコードは使用可能ですが、ブランク トランケーションは使用できません。
ファイルはレコード圧縮を使用します。また、可変長部割り当てテーブル(VAT)を許可し、空きスペース スレッショルドは 20 % に設定されています。MicroKernel Database エンジンは、ファイルを作成する際に 100 ページ、つまり 51,200 バイトをプリアロケートします。ファイルには、キー 0 およびキー 1 の 2 つがあり、キー 0 には 2 つのセグメントがあります。
図
43 では、同一の ACS ファイル名(upper.alt)が両方のキーで使用されています。図
44 では、同一のカントリ ID(-1)およびコード ページ ID(-1)が両方のキーで使用されています。図
45 では、キー 0(lower.alt)およびキー 1(upper.alt)で、異なる ACS ファイル名を使用しています。図
46 のファイルには、ログに使用されるシステム定義キーのみが含まれています。
図 43 キー セグメントに ACS のファイル名を使ったディスクリプション ファイルのサンプル
図 44 ACS ID を使ったディスクリプション ファイルのサンプル
図 45 キー セグメントに ACS のファイル名を使ったディスクリプション ファイルのサンプル
図 46 システム定義キーをログに使用するディスクリプション ファイルのサンプル
ディスクリプション ファイルの要素
ディスクリプション ファイルの要素は特定の順序で並べる必要があります。表
82 は、ディスクリプション ファイルの要素を適切な順序で示しています。この表では、各要素に必要な書式および指定可能な値の範囲を示します。
•アスタリスク(*)は、その要素が省略可能であることを意味します。
•シャープ記号(#)は、その要素が以前のバージョンの MicroKernel にのみ適用されることを意味します。
•パーセント記号(%)は、その要素が現バージョンの MicroKernel にのみ適用されることを意味します。
表 82 ディスクリプション ファイルの概要
要素 | キーワードとフォーマット | 範囲 | 解説 |
ファイル スペック情報 | | | |
コメント ブロック* | /*. . . . . . . . . . . . */ | 5,120 バイト | なし。 |
レコード長 | record=nnnn | 4 - 8,184 | なし。 |
可変長レコード | variable=<y|n> | 適用外 | キー オンリー ファイルには適用できません。 |
予約重複ポインター* | dupkey=<nnn> | 0 - 119 | リンク重複キーを追加するファイルにのみ適用できます。 |
ブランク トランケーション* | truncate=<y|n> | 適用外 | レコード圧縮が使用されるファイルには適用できません。 |
レコード圧縮* | compress=<y | n> | 適用外 | キー オンリー ファイルには適用できません。 レコードおよびページ圧縮も参照してください。 |
キー数 | key=nnn | 0 - 119 | データ オンリー ファイルを作成する場合は、0 を指定します。 キー カウントがゼロの場合、[データのインクルード]および[システム データの使用]は "no" に設定することはできません。 |
ページ サイズ | page=nnnn | 512 - 9.0 より前のファイル バージョの場合は 4096 バイト(512 バイトの倍数で最大 4096 バイト) 512、1024、1536、2048、2560、3072、3584、4096 または 8192 バイト(ファイル バージョンが 9.0 の場合) 1024、2048、4096、8192 または 16384 バイト(ファイル バージョンが 9.5 以上の場合) | |
ページ プリアロケーション* | allocation=nnnnn | 1 - 65,535 | なし。 |
既存ファイルの置き換え*# | replace=<y|n> | 適用外 | なし。 |
データのインクルード* | data=<y|n> | 適用外 | キー オンリー ファイルを作成する場合は、n を指定します。重複を許可し、システム定義のキーを使用するキー オンリー ファイルを作成することはできません。 |
空きスペース スレッショルド* | fthreshold=<5|10|20|30> | 適用外 | 可変長レコードのあるファイルのみに適用できます。デフォルト値は 5 です。 |
可変長部割り当てテーブル(VAT) | huge=<y|n> # vats=<y|n> | 適用外 | 可変長レコードのあるファイルのみに適用できます。 |
インデックス バランス* | balance=<y|n> | 適用外 | なし。 |
キー番号の使用* | usekeynum=<y|n> | 適用外 | キー番号の要素と併用されます。 |
1システム データの使用*% | sysdataonrecord= <n|loggable> | 適用外 | 要素が指定されない場合は、MicroKernel の設定が使用されます。キー オンリーのファイルを作成する場合は、MicroKernel の設定が使用され、この要素は無視されます。 |
ページ圧縮* | pagecompress=<y | n> | 適用外 | |
キー スペック情報 | | | |
キー番号* | keynum=nnn | 0 - 118 | ファイル内で重複せず、昇順に指定され、ファイルのページ サイズに有効であることが必要です。ファイルを作成する場合のみに適用されます。 |
キー ポジション | position=nnnn | 1 - 8,184 | レコード長を超えてはいけません。 |
キー長 | length=nnn | キー タイプの制限 | キー タイプが指示する制限を超えてはいけません。バイナリ キーのキー長は、偶数であることが必要です。キー ポジションとキー長の合計が、ファイルのレコード長を超えてはいけません。 |
重複キー値 | duplicates=<y|n> | 適用外 | 重複を許可し、システム定義のキーを使用するキー オンリー ファイルを作成することはできません。 |
変更可能キー値 | modifiable=<y|n> | 適用外 | なし。 |
キー タイプ | type= validMKDEKeyType | 適用外 | 名前全体(例、「float」)または最初の三文字(例、「flo」)を入力します。 |
降順ソート* | descending=<y|n> | 適用外 | なし。 |
オルタネート コレーティング シーケンス(ACS) | alternate=<y|n> | 適用外 | 大文字小文字を区別する STRING や LSTRING、WSTRING、WZSTRING、ZSTRING キーのみに適用できます。既存ファイルにインデックスを追加作成する際に、そのインデックスでデータ ファイルの最初にある ACS 以外の ACS を使用する場合は、caseinsensitive=y と共に使用します。 |
大文字小文字無視のキー* | caseinsensitive=<y|n> | 適用外 | ACS が使用されない STRING、LSTRING、または ZSTRING キーのみに適用できます。 |
繰り返し重複* | repeatdup=<y|n> | 適用外 | キー オンリーのファイルを作成する場合は、繰り返し重複を使用します。この要素を使用する場合は、duplicates=y を使用します。 |
ヌル セグメント* | nullkey=<allsegs | n | anyseg |> | 適用外 | なし。 |
ヌル キーの値 | value=nn | 16 進の 1 バイト | ヌル セグメント要素に使用されます。 |
セグメント キー | segment=<y|n> | 適用外 | なし。 |
オルタネート コレーティング シーケンス のファイル名と ID | name=sequenceFile または countryid=nnn および codepageid=nnn isr=table name (%) | 有効なパス、あるいは使用中のオペレーティング システムで有効な値、または -1 | オルタネート コレーティング シーケンス要素と共に使用されます。 |
1 データベース エンジンがシステム キーを追加する場合、結果レコードがファイルの既存ページ サイズを超えることがあります。その場合、データベース エンジンは、ファイルのページ サイズを自動的に次の適切な大きさに調整します。 |