Btrieve API Guide (v11)

Drop Index(32)

Drop Index オペレーション(B_DROP_INDEX)では、既存のファイルからキーを削除します。

パラメーター

 
オペレーション コード
ポジション ブロック
データ バッファー
データ バッファー長
キー バッファー
キー番号
送り値

 
 
 

戻り値
 
 
 
 
 
 

前提条件

手順

  1. オペレーション コードに 32 を設定します。
  2. 削除するキーを含むファイルのポジション ブロックを渡します。
  3. キー番号パラメーターに削除するキーの番号を格納します。システム定義のログ キー(システム データとも言います)を削除するには、125 を指定します。

詳細

システム定義のログ キーを削除した場合、Create Index(31)オペレーションを使ってそれを再構築することができます。

キーを削除すると、トランザクショナル インターフェイスでは特に指定がなければ、削除したキーよりもキー番号の大きなキーはすべて自動的に番号が付け替えられます。トランザクショナル インターフェイスでは、削除したキーよりもキー番号の大きなキーは、番号が 1 ずつ小さくなります。たとえば、キー番号 1、4、および 7 を含むファイルがあるとします。キー 4 を削除すると、トランザクショナル インターフェイスでは残ったキーの番号が 1 と 6 に付け替えられます。

トランザクショナル インターフェイスによってキー番号を自動的に付け替えられたくない場合は、128 というバイアスをキー番号パラメーターに入れる値に加算します。これにより、キー番号は飛んだままにしておくことができ、その結果、ファイル内のほかのキー番号に影響を及ぼすことなく、壊れたインデックスを削除し、そのインデックスを作成し直すことができます。インデックスを再構築するには、Create Index オペレーション(31)を使います。このオペレーションではキー番号を指定できます。

ただし、キーを削除し、それよりキー番号の大きなキーの番号を付け替えなかった場合、その後でユーザーが具体的なキー番号を割り当てずに影響を受けたファイルを複製すると、複製したファイルには元のファイルとは別のキー番号が割り当てられます。(ユーザーは Btrieve Maintenance ユーティリティを使ってファイルを複製できます。複製とは、ある既存のファイルと同じ統計情報を使って新しい空のファイルを作成する処理です。)

結果

Drop Index オペレーションが正常に終了した場合、指定したインデックスはトランザクショナル インターフェイスによって削除され、そのインデックスに割り当てられていたページは、今後の使用のために空き領域のリストに配置されます。また、特に指定しなければ、トランザクショナル インターフェイスでは削除したキーよりもキー番号の大きなキーの番号が付け替えられます。

Drop Index オペレーションが正常に実行されなかった場合は、トランザクショナル インターフェイスから次のステータス コードのいずれかが返されます。

6
キー番号パラメーターが不正です。
41
実行しようとした操作はトランザクショナル インターフェイスでは許可されていません。

トランザクショナル インターフェイスがインデックスを削除中に処理が中断されても、ファイルのほかのキーを使ってファイルのデータにアクセスすることはできます。しかし、不完全なインデックスを使ってファイルにアクセスしようとすると、トランザクショナル インターフェイスからステータス コード 56 が返されます。処理が中断された場合は、Drop Index オペレーションを再発行してください。

ポジショニング

Drop Index オペレーションは、ファイルの物理カレンシー情報にはまったく影響しません。ただし、直前に論理カレンシーを確立するために使用したキーを削除すると、論理カレンシーは消去されます。


Delete(4)

End Transaction(20)