|
このセクションでは、CLONE、CLROWNER、CREATE、DROP、INDEX、SETOWNER、および SINDEX といった各種 BUTIL コマンドを使用した、データ ファイルの作成と変更に関する詳細について説明します。またこのセクションでは、Btrieve データ ファイルのコンパクト化で、Btrieve データ ファイルの未使用スペース削除に関して詳細に説明します。
注意
同じディレクトリに、ファイル名が同一で拡張子のみが異なるようなファイルを置かないでください。たとえば、同じディレクトリ内のデータ ファイルの 1 つに Invoice.btr、もう 1 つに Invoice.mkd という名前を付けてはいけません。このような制限が設けられているのは、データベース エンジンがさまざまな機能でファイル名のみを使用し、ファイルの拡張子を無視するためです。ファイルの識別にはファイル名のみが使用されるため、ファイルの拡張子だけが異なるファイルは、データベース エンジンでは同一のものであると認識されます。
コマンド
|
説明
|
---|---|
既存ファイルの仕様を使用して、空の新規データ ファイルを作成します。
|
|
データ ファイルのオーナー ネームをクリアします。
|
|
データ ファイルを作成します。
|
|
インデックスを削除します。
|
|
外部インデックス ファイルを作成します。
|
|
データ ファイルにオーナー ネームを割り当てます。
|
|
インデックスを作成します。
|
CLONE コマンドは、既存ファイルと同じファイル仕様(オーナー ネームを含まず、補足インデックスを含む)を持つ、空の新規ファイルを作成します。新しいデータ ファイルには、既存ファイルのすべての定義済みキー属性(キー位置、キー長、重複キー値など)が含まれます。
CLONE コマンドでは、ファイル情報(システム データ参照)に影響する MicroKernel 設定オプションのすべてが無視されます(ファイル バージョンを除く)。CLONE コマンドは、[作成ファイルのバージョン]オプションで指定したデータベース エンジンのファイル バージョンを使用して新規ファイルを作成します。
BUTIL -CLONE outputFile sourceFile [/O<owner | *>] [/ pagecompresson | /pagecompressoff] [/ recordcompresson | /recordcompressoff] [/UIDuname / PWDpword [/DBdbname]] [/S]
outputFile
|
空の新規データ ファイルに使用するフル パス名。Windows プラットフォームで BUTIL を使用する際、データ ファイルが現在のディレクトリに存在する場合は、パスを指定する必要はありません。
|
sourceFile
|
複製する既存データ ファイルのフル パス名。Windows プラットフォームで BUTIL を使用する際、データ ファイルが現在のディレクトリに存在する場合は、パスを指定する必要はありません。
|
/Oowner
|
ソース データ ファイルにオーナー ネームが割り当てられている場合は、そのオーナー ネーム。新規データ ファイルには、オーナー ネームは含まれません。詳細については、オーナー ネームを参照してください。
|
/pagecompresson
|
outputFile のページ圧縮をオンにすると、以下の条件が設定されます。
|
/pagecompressoff
|
outputFile のページ圧縮をオフにします。このパラメーターは、sourceFile にページ圧縮が指定されていない場合は無効です。
|
/recordcompresson
|
outputFile のページ圧縮をオンにします。
|
/recordcompressoff
|
outputFile のレコード圧縮をオフにします。このパラメーターは、sourceFile にレコード圧縮が指定されていない場合は無効です。
|
/UID<name>
/UIDuname
|
セキュリティが設定されているデータベースにアクセスする権限を与えられたユーザー名を指定します。
|
/PWD<word>
/PWDpword
|
uname で識別されるユーザーのパスワードを指定します。uname が指定された場合、pword は必ず指定する必要があります。
|
/DB<name>
/DBdbname
|
セキュリティが設定されたデータベース名を指定します。省略した場合はデフォルトのデータベースと解釈されます。
|
Btrieve 6.0 以降では、ページ サイズが 1,024 バイトのデータ ファイルで最大 23 のキー セグメントを使用することができるため、CLONE コマンドでは、既存データ ファイルに 24 のキー セグメントが含まれ、ページ サイズが 1,024 バイトの場合、新規データ ファイルのページ サイズは 2,048 バイトに設定されます。これは、既存データ ファイルがバージョン 6.0 より前の形式で、データベース エンジン ロードの際に、作成ファイルのバージョン オプションが 5.x または 6.x に設定されていない場合に発生します。
バージョン 7.x 以前のファイルを複製する場合は、作成する新規ファイルのバージョン設定を確認してください。たとえば、6.15 ファイルを 9.5 形式で複製する場合は、[作成ファイルのバージョン]オプションを 9.5 に設定します。
メモ
ソース ファイルがシステム データを含まない 8.x 以上の形式の場合は、データベース エンジンの設定にかかわらず、出力ファイルにもシステム データは含まれません。既存ファイルへのシステム データの追加については、『Getting Started with Pervasive PSQL』を参照してください。
ステータス コード 30(指定されたファイルは MicroKernel ファイルではありません)が発生し、ソース ファイルのヘッダー ページが破損している可能性がある場合、ディスクリプション ファイルで CREATE コマンドを使用して新規の MicroKernel ファイルを作成します。
以下のコマンドは、COURSE.MKD ファイルを複製して NEWCRS.MKD ファイルを作成します。
CLROWNER コマンドは、MicroKernel ファイルのオーナー ネームをクリアします。
BUTIL -CLROWNER sourceFile </O<owner | *> [/UIDuname / PWDpword [/DBdbname]]
sourceFile
|
データ ファイルの完全なフル パス名。Windows プラットフォームで BUTIL を使用する際、データ ファイルが現在のディレクトリに存在する場合は、パスを指定する必要はありません。
|
/Oowner
|
クリアするオーナー ネーム詳細については、オーナー ネームを参照してください。
|
/UID<name>
/UIDuname
|
セキュリティが設定されているデータベースにアクセスする権限を与えられたユーザー名を指定します。
|
/PWD<word>
/PWDpword
|
uname で識別されるユーザーのパスワードを指定します。uname が指定された場合、pword は必ず指定する必要があります。
|
/DB<name>
/DBdbname
|
セキュリティが設定されたデータベース名を指定します。省略した場合はデフォルトのデータベースと解釈されます。
|
以下のコマンドは、TUITION.MKD のオーナー ネームをクリアします。このファイルのオーナー ネームは Sandy です。
CREATE コマンドは、ディスクリプション ファイルで指定されている属性を使用して、空の MicroKernel ファイルを作成します。CREATE コマンドを実行する前に、新しいキー属性を指定するディスクリプション ファイルを作成します。詳細については、ディスクリプション ファイルを参照してください。
BUTIL -CREATE outputFile descriptionFile [< Y | N >] [/UIDuname /PWDpword [/DBdbname]]
以下のコマンドは、CREATE.DES ディスクリプション ファイルで定義された内容を使用し、ファイル COURSE.MKD を作成します。
図 40 の例では、MicroKernel 形式のファイルが作成されます。ファイルのページ サイズは 512 バイト、キーは 2 つに設定されています。ファイルの各レコードの固定長部は 98 バイト に設定されています。このファイルでは、可変長レコードがブランク トランケーション、レコード圧縮、可変長部割り当てテーブル(VAT)を使用しないように指定されています。空きスペース スレッショルドは、20 パーセントに設定されています。プリアロケーションは、100 ページに設定されています。ファイル作成時に、100 ページつまり 51,200 バイトがプリアロケートされます。
キー 0 は、重複可能で変更不可能な文字列セグメントを 2 つ含むセグメント キーで、この 2 つのセグメントには、16 進数で 20(スペース)のヌル値が指定されています。キー 0 では、コレーティング シーケンス upper.alt が使用されます。
キー 1 は、重複不可能で変更可能な数値型のセグメント化されていないキーです。これは、降順でソートされます。
DROP コマンドは、ファイルからインデックスを削除し、それ以降のキー番号から 1 を引くことによって、残りのインデックスのキー番号を調整します。キーの番号を調整しない場合は、削除に指定したキー番号に 128 を加算します。この調整は、6.0 以降のファイルでのみ使用可能です。
BUTIL -DROP sourceFile < keyNumber | SYSKEY > [/O<owner | *>] [/UIDuname /PWDpword [/DBdbname]]
以下の例では、COURSE.MKD に 3 つのキーが存在します。ファイルの元のキーは、それぞれの番号が 0、1、2 となっています。
最初の例では、BUTIL -DROP コマンドで、COURSE.MKD からキー番号 1 を削除し、残りのキー番号をそれぞれ 0 と 1 に調整します。
以下の例では、BUTIL -DROP コマンドでキー番号 1 を削除し、キー番号の調整は行いません。キー番号は、それぞれ 0 と 2 のままになります。
INDEX コマンドは、既存ファイルでキーとして指定されていないフィールドに基づき、既存 MicroKernel ファイルの外部インデックス ファイルを構築します。INDEX コマンドを実行する前に、新しいキー属性を指定するディスクリプション ファイルを作成します。ディスクリプション ファイルの詳細については、ディスクリプション ファイルを参照してください。
新規ファイルのレコードは、以下から構成されます。
メモ
ディスクリプション ファイルで指定したキー長が 10 バイトの場合、外部インデックス ファイルのレコード長は 14 バイト(10 + 4 バイト アドレス)になります。
BUTIL -INDEX sourceFile indexFile descriptionFile [/O<owner | *>] [/O<owner | *>] [/UIDuname /PWDpword [/DBdbname]]
INDEX コマンドは、外部インデックス ファイルを作成し、インデックスが設定されたレコードの数を表示します。外部インデックス ファイルを使用して、データ ファイルのレコードを読み込む場合は、SAVE コマンドを使用します。
以下のディスクリプション ファイルでは、1 つのセグメントを含む新しいキーを定義します。キーは、レコードの 30 バイト目から始まり、10 バイトの長さを持ちます。また、重複と変更が可能な STRING 型で、オルタネート コレーティング シーケンスを使用しません。
以下のコマンドは、データ ファイル COURSE.MKD を使用し、外部インデックス ファイル NEWCRS.IDX を作成します。COURSE.MKD には、オーナー ネームは必要ありません。新しいキーの定義を含むディスクリプション ファイルは、NEWCRS.DES という名前です。
SETOWNER コマンドは、データ ファイルのオーナー ネームを設定します。
BUTIL -SETOWNER sourceFile /O<owner | *> level [/L] [/UIDuname /PWDpword [/DBdbname]]
sourceFile
|
データ ファイルのフル パス名。Windows プラットフォームで BUTIL を使用する際、データ ファイルが現在のディレクトリに存在する場合は、パスを指定する必要はありません。
|
/Oowner
|
設定するオーナー ネーム
|
level
|
データ ファイルのアクセス制限の種類。以下は、このパラメーターの説明です。
level は /O パラメーターの直後に置く必要があります。
|
|
0: すべてのアクセス モードでオーナー ネームが必要(データ暗号化なし)
|
|
1: リード オンリー アクセスにはオーナー ネームは必要なし(データ暗号化なし)
|
|
2: すべてのアクセス モードでオーナー ネームが必要(データ暗号化あり)
|
|
3: リード オンリー アクセスにはオーナー ネームは必要なし(データ暗号化あり)
|
/L
|
長いオーナー ネームを指定します。
オーナー ネームでは大文字と小文字が区別されます。また、短いものと長いものがあります。短いオーナー ネームは半角 8 文字までの範囲で指定できます。長いオーナー ネームは半角 24 文字までの範囲で指定できます。長いオーナー ネームに関する制限事項については、『Btrieve API Guide』の 「Set Owner(29)」で「手順」を参照してください。
|
/UID<name>
/UIDuname
|
セキュリティが設定されているデータベースにアクセスする権限を与えられたユーザー名を指定します。
|
/PWD<word>
/PWDpword
|
uname で識別されるユーザーのパスワードを指定します。uname が指定された場合、pword は必ず指定する必要があります。
|
/DB<name>
/DBdbname
|
セキュリティが設定されたデータベース名を指定します。省略した場合はデフォルトのデータベースと解釈されます。
|
以下の例では、course.mkd データ ファイルの短いネームのオーナーを作成します。オーナー ネーム Sandy に制限レベル 1 を設定します。
以下の例では、billing.mkd データ ファイル用の長いオーナー ネームを作成し、そのオーナー ネームとファイルを暗号化し、すべてのアクセス モードを制限します。
SINDEX コマンドは、既存 MicroKernel ファイルに追加インデックスを作成します。デフォルトでは、新規インデックスのキー番号は、データ ファイルでそれまで最大だったキー番号より 1 つ大きな番号になりますが、キー番号を指定することも可能です。例外として、DROP コマンドでインデックスを削除し、残りキー番号の調整を行わなかった場合は、未使用のキー番号が存在するため、新しいインデックスに最初の未使用番号が割り当てられます。
キー番号オプションを使用することにより、新規インデックスのキー番号を指定できます。指定するキー番号は、ファイルで使用されていない有効なキー番号でなければなりません。無効なキー番号を指定した場合は、ステータス コード 6 が返されます。
このコマンドで SYSKEY オプションを使用しない場合は、SINDEX コマンドを使用する前に、インデックスのキー仕様を定義するディスクリプション ファイルを作成する必要があります。ディスクリプション ファイルの詳細については、ディスクリプション ファイルを参照してください。
BUTIL -SINDEX sourceFile <descriptionFile | SYSKEY> [keyNumber] [/O<owner | *>] [/O<owner | *>] [/UIDuname /PWDpword [/DBdbname]]
以下の例では、COURSE.MKD にインデックスを追加します。ディスクリプション ファイルの名前は、NEWIDX.DES です。
以下の例では、システム定義キーが削除された COURSE.MKD にシステム定義キーを追加します。
BUTIL では、複数のコマンド(CLONE、RECOVER、LOAD)を使用してデータ ファイルの未使用スペースを削除し、ファイル サイズを縮小することができます。
Btrieve データ ファイルをコンパクト化するには
|