Advanced Operations Guide (v11)

データのインポートとエクスポート

このセクションでは、BUTIL コマンドの COPYLOADRECOVER および SAVE を使用したデータのインポートおよびエクスポートの詳細について説明します。

表 59 データのインポートとエクスポートを行うコマンド
コマンド
説明
データ ファイルの内容を、別のデータ ファイルにコピーします。
データ ファイルにシーケンシャル ファイルの内容をロードします。
データ ファイルからシーケンシャルにデータを読み込み、シーケンシャル ファイルに結果を書き込みます。
キー パスのデータを読み込み、シーケンシャル ファイルに結果を書き込みます。

COPY

COPY コマンドは、MicroKernel ファイルの内容を、別のファイルにコピーします。COPY は、入力データ ファイルの各レコードを取得して、出力データ ファイルに挿入します。両ファイルのレコードのサイズは同じである必要があります。レコードのコピー後、COPY によって新しいデータ ファイルに挿入されたレコードの総数が表示されます。


メモ

COPY は、RECOVER コマンドと LOAD コマンドに相当する処理を一度に実行します。


COPY コマンドを使用することにより、古いファイルからのデータと新しいキー属性を持つデータ ファイルを作成できます。

MicroKernel データ ファイルをコピーするには

  1. CREATE コマンドを使用し、任意のキー属性(キー位置、キー長、重複キー値)を持つ空のデータ ファイルを作成します。
    または
    CLONE コマンドを使用して、既存ファイルの属性を使った空のデータ ファイルを作成します。
  2. COPY コマンドを使用し、既存データ ファイルの内容を、新しく作成したデータ ファイルにコピーします。

形式

butil -copy sourceFile outputFile [/O< owner1 | *> 
[/O<owner2 | *>]] [/UIDuname /PWDpword [/DBdbname]]
sourceFile
レコードをコピーする元となるデータ ファイルのフル パス名。Windows プラットフォームで BUTIL を使用する際、データ ファイルが現在のディレクトリに存在する場合は、パスを指定する必要はありません。
outputFile
レコードを挿入する先のデータ ファイルのフル パス名。出力データ ファイルにはデータが入っていても空でもかまいません。Windows プラットフォームで BUTIL を使用する際、データ ファイルが現在のディレクトリに存在する場合は、パスを指定する必要はありません。
/Oowner1
ソース データ ファイルのオーナー ネーム(必要な場合)。出力データ ファイルのみでオーナー ネームが必要な場合は、/O に続けて owner1 にスペースを指定します(使用例を参照してください)。
/Oowner2
出力データ ファイルのオーナー ネーム(必要な場合)。
/UID<name>
/UIDuname
セキュリティが設定されているデータベースにアクセスする権限を与えられたユーザー名を指定します。
 
/PWD<word>
/PWDpword
uname で識別されるユーザーのパスワードを指定します。uname が指定された場合、pword は必ず指定する必要があります。
 
/DB<name>
/DBdbname
セキュリティが設定されたデータベース名を指定します。省略した場合はデフォルトのデータベースと解釈されます。
 
 

以下のコマンドは、COURSE.MKD のレコードを NEWCRS.MKD にコピーします。COURSE.MKD 入力ファイルに、オーナー ネームは必要ありませんが、NEWCRS.MKD 出力ファイルでは、オーナー ネーム Pam が使用されています。

butil -copy course.mkd newcrs.mkd /O /OPam  

この例から最初の /O を省略した場合、オーナー ネーム Pam は、出力データ ファイルではなく、入力データ ファイルのものとして認識されます。

LOAD

LOAD コマンドは、入力 ASCII ファイルのレコードをファイルに挿入します。入力 ASCII ファイルは、1 つのファイルまたは拡張ファイル(ベース ファイルと複数のエクステンション ファイル)のどちらでもかまいません。LOAD コマンドでは、入力 ASCII ファイルのデータは変換されません。データ ファイルへのレコード移動後、ロードされたレコードの総数が表示されます。


メモ

LOAD コマンドは、アクセラレイティド モードで出力ファイルを開きます。ロード オペレーション中は、ファイルのログは作成されません。アーカイブ ログを使用している場合は、LOAD コマンド使用後にデータ ファイルを再度バックアップします。

拡張ファイル:次のエクステンション ファイルが検出された場合は、ロードが継続されます。SAVE コマンドおよび RECOVER コマンドで作成してあるエクステンション ファイルは、削除しないでください。ファイルに 3 つのエクステンション ファイルが存在し、ユーザーが 2 つ目のエクステンション ファイルを削除した場合は、1 つ目のエクステンション ファイル処理後に、レコードのロードが中止されます。

SAVE または RECOVER コマンドにより作成されたエクステンション ファイルは 3 つなのに、4 つ目のエクステンション ファイルが以前の SAVE または RECOVER コマンドで作成されて存在している場合、4 つ目のエクステンション ファイルからもレコードが読み込まれ、データベース エンジン ファイルに挿入されます。4 つ目のエクステンション ファイルが存在する場合は、LOAD 開始前に削除してください。


LOAD コマンド実行前には、入力 ASCII ファイルおよびデータ ファイルを作成する必要があります。入力 ASCII ファイルは、標準のテキスト エディターやアプリケーションを使用して作成できますが、そのファイル形式(ASCII ファイル形式のインポートとエクスポート参照)に従う必要があります。データ ファイルは、 CREATE コマンドまたは  CLONE コマンドを使用して作成できます。

形式

butil -load unformattedFile outputFile [/O<owner |*>] [/UIDuname 
/PWDpword [/DBdbname]]
unformattedFile
データ ファイルにロードするレコードを含む ASCII ファイルのフル パス名。Windows プラットフォームでは、データ ファイルが現在のディレクトリに存在する場合は、パスを指定する必要はありません。
outputFile
レコードを挿入する先のデータ ファイルのフル パス名。Windows プラットフォームで BUTIL を使用する際、データ ファイルが現在のディレクトリに存在する場合は、パスを指定する必要はありません。
/Oowner
データ ファイルのオーナー ネーム(必要な場合)。
/UID<name>
/UIDuname
セキュリティが設定されているデータベースにアクセスする権限を与えられたユーザー名を指定します。
 
/PWD<word>
/PWDpword
uname で識別されるユーザーのパスワードを指定します。uname が指定された場合、pword は必ず指定する必要があります。
 
/DB<name>
/DBdbname
セキュリティが設定されたデータベース名を指定します。省略した場合はデフォルトのデータベースと解釈されます。
 
 

以下の例では、シーケンシャル レコードを COURSE.TXT から COURSE.MKD に読み込みます。COURSE.MKD のオーナー ネームは Sandy です。

butil -load course.txt course.mkd /oSandy  

RECOVER

RECOVER コマンドは、MicroKernel ファイルからデータを取り出し、LOAD コマンドで使用する入力 ASCII ファイルと同じ形式の ASCII ファイルに書き込みます。これは、破損した MicroKernel ファイルから、一部または全部のデータを取り出すときに便利です。RECOVER コマンドは、すべてではないにしても、ファイルのレコードの多数を取り出すことができます。この後は、LOAD コマンドを使用し、新しい MicroKernel ファイルに回復したレコードを挿入します。


メモ

Maintenance ユーティリティでは、レコードのデータは変換されないため、テキスト エディターを使用してバイナリ データを含む出力ファイルを編集する場合、テキスト エディターによってはバイナリ データが変更されてしまい、予期しない問題が発生する場合があります。


形式

BUTIL -RECOVER sourceFile unformattedFile [/O<owner |*>] 
[/Q] [/J] [/I] [/UIDuname /PWDpword [/DBdbname]]
sourceFile
回復するデータを含むデータ ファイルのフル パス名。Windows プラットフォームで BUTIL を使用する際、データ ファイルが現在のディレクトリに存在する場合は、パスを指定する必要はありません。
unformattedFile
回復したレコードを保存する ASCII ファイルのフル パス名。
/Oowner
データ ファイルのオーナー ネーム(必要な場合)。
/Q
既存のシーケンシャル ファイルに上書きするかどうかを指定します。デフォルトでは、既存のファイルに上書きされます。このオプション使用時に同名のファイルが存在する場合は、エラー メッセージが表示されます。また、回復の対象となるデータベース エンジン ファイルが拡張されているかどうかがチェックされます。ファイルが拡張されている場合は、存在する可能性のあるエクステンション ファイルと同名のファイルが存在するかどうかもチェックされます。このいずれかのファイルが存在する場合は、エラー メッセージが表示されます。
/J
ファイルを後方から読み込みます。このオプションを使用した場合は、STEP LAST と STEP PREVIOUS オペレーションを使用してデータベース エンジン ファイルのデータ回復が行われます。デフォルトでは、STEP FIRST と STEP NEXT オペレーションを使用してファイルの先頭からデータが読み込まれます。
/I
ファイルを前方から読み込みます。デフォルトでは、前方から読み込まれますが、このオプションを使用して前方および後方を指定することができます。/I および /J の両方を指定した場合は、エラーが発生するまで前方からファイルが読み込まれます。次に、発生したエラーまで、または別のエラーが発生するまで、ファイルを最後から読み込みます。/J を最初に指定した場合は、まず後方から、次に前方から読み込みます。
/UID<name>
/UIDuname
セキュリティが設定されているデータベースにアクセスする権限を与えられたユーザー名を指定します。
 
/PWD<word>
/PWDpword
uname で識別されるユーザーのパスワードを指定します。uname が指定された場合、pword は必ず指定する必要があります。
 
/DB<name>
/DBdbname
セキュリティが設定されたデータベース名を指定します。省略した場合はデフォルトのデータベースと解釈されます。
 
 

ソース ファイルの各レコードでは、RECOVER コマンドで可変ページ エラー(ステータス コード 54)が発生した場合、現在のレコードから取得できるすべてのデータをシーケンシャル ファイルに書き込み、回復処理を継続します。

ユーティリティでは、以下のメッセージが表示されます。

以下の例では、COURSE.MKD からレコードを取り出し、COURSE.TXT に書き込みます。

butil -recover course.mkd course.txt 

SAVE

SAVE コマンドは、指定したインデックス パスを使用して MicroKernel ファイルからデータを読み込み、LOAD コマンドで使用する形式に対応した ASCII ファイルに書き込みます。その後、その ASCII ファイルを編集し、LOAD コマンドを使用して編集後のデータを、別のデータ ファイルに保存することができます。ASCII ファイル形式の詳細については、ASCII ファイル形式のインポートとエクスポートを参照してください。

SAVE は、入力データ ファイルの各レコードに対して、出力 ASCII ファイルにレコードを 1 つ作成します。完了後、SAVE によって保存されたレコードの総数が表示されます。


メモ

Maintenance ユーティリティでは、レコードのデータは変換されないため、テキスト エディターを使用してバイナリ データを含む出力ファイルを編集する場合、テキスト エディターによってはバイナリ データが変更されてしまい、予期しない問題が発生する場合があります。


形式

butil -save sourceFile unformattedFile [Y indexFile | N <keyNumber 
| -1>] [/O<owner1 | *> [/O<owner2 | *>]] [/Q] [/J] [/
I] [/UIDuname /PWDpword [/DBdbname]]
sourceFile
保存するレコードを含むデータ ファイルのフル パス名。Windows プラットフォームで BUTIL を使用する際、データ ファイルが現在のディレクトリに存在する場合は、パスを指定する必要はありません。
unformattedFile
レコードを保存する ASCII ファイルのフル パス名。
indexFile
デフォルトの設定である最小キー番号を使用してレコードを保存しない場合、レコードを保存する外部インデックス ファイルのフル パス名。
keyNumber
デフォルトの設定である最小キー番号を使用してレコードを保存しない場合、レコードを保存するキー番号(0 以外)。
-1
Btrieve Step オペレーションを使用して、物理的順序に従ってレコードを保存する場合に指定します。
/Oowner1
ソース ファイルのオーナー ネーム(必要な場合)。インデックス ファイルのみでオーナー ネームが必要な場合は、/O に続けて owner1 にスペースを指定します。
/Oowner2
インデックス ファイルのオーナー ネーム(必要な場合)。
/Q
既存のシーケンシャル ファイルに上書きするかどうかを指定します。デフォルトでは、既存のファイルに上書きされます。このオプション使用時に同名のファイルが存在する場合は、エラー メッセージが表示されます。また、保存の対象となるデータベース エンジン ファイルが拡張されているかどうかがチェックされます。ファイルが拡張されている場合は、存在する可能性のあるエクステンション ファイルと同名のファイルが存在するかどうかもチェックされます。このいずれかのファイルが存在する場合は、エラー メッセージが表示されます。
/J
ファイルを後方から読み込みます。このオプションを使用した場合は、GET LAST と GET PREVIOUS オペレーションを使用してデータベース エンジン ファイルのデータ回復が行われます。デフォルトでは、GET FIRST と GET NEXT オペレーションを使用してファイルの保存が行われます。
/I
ファイルを前方から読み込みます。デフォルトでは、前方から読み込まれますが、このオプションを使用して前方および後方を指定することができます。/I および /J の両方を指定した場合は、エラーが発生するまで前方からファイルが読み込まれます。次に、発生したエラーまで、または別のエラーが発生するまで、ファイルを最後から読み込みます。/J を最初に指定した場合は、まず後方から、次に前方から読み込みます。
/UID<name>
/UIDuname
セキュリティが設定されているデータベースにアクセスする権限を与えられたユーザー名を指定します。
 
/PWD<word>
/PWDpword
uname で識別されるユーザーのパスワードを指定します。uname が指定された場合、pword は必ず指定する必要があります。
 
/DB<name>
/DBdbname
セキュリティが設定されたデータベース名を指定します。省略した場合はデフォルトのデータベースと解釈されます。
 
 

ユーティリティでは、以下のメッセージが表示されます。

以下の 2 つの例は、SAVE コマンドを使用した、データ ファイルからのレコード取得方法です。

この例では、NEWCRS.IDX 外部インデックス ファイルを使用して COURSE.MKD からレコードを取得し、それらを COURSE.TXT という名前のシーケンシャル テキスト ファイルに保存します。

butil save course.mkd course.txt newcrs.idx  

この例では、キー番号 3 を使用して COURSE.MKD からレコードを取得し、それらを COURSE.TXT という名前のシーケンシャル テキスト ファイルに保存します。

butil -save course.mkd course.txt n 3  

Btrieve コマンドライン Maintenance ユーティリティ(butil)

データ ファイルの作成と変更