キー情報レコードは、ファイル内で使用するすべてのキーの物理特性を記述します。この情報には、各キーの長さ、データ レコード内のキーが定義される場所、重複が許可されているかどうかなどがあります。キー情報レコード構造内には、キー ブロックというサブ構造があります。キー ブロックは、定義されているキーごとに作成されます。最初のキー ブロックは、常に主キーを記述します。次に続くキー ブロックは、ファイルの作成時に指定した順序で副キーを定義します。キー情報レコードが、定義されているすべてのキーのキー ブロックを格納できる大きさでない場合は、すべてのキーが定義されるまで、同じサイズの継続レコードが作成されます。各レコードは、それぞれ次のレコードを示します。
 
	 キー情報レコードには、次のフィールドがあります。
 
	  
	 
 
		   
		   
		   
			  
				| サイズ | 
 
				フィールドの説明 | 
 
			 
 
		  
 
		   
			  
				| 2 | 
 
				レコード ヘッダー。索引ノードにレコード ヘッダーがある場合にのみ存在します。詳細については、「索引ファイルの種類」のトピックを参照してください。 | 
 
			 
 
			  
				| 2 | 
 
				 
				   
					  
						- ビット 15
 
 
						- セキュリティ フラグ。値は 0 です。
 
 
					  
					  
						- ビット 14 から 0
 
 
						- このレコードの先頭を基準として、レコード内の最終キー ブロック エントリの末尾を指すポインター
 
 
					  
				   
 
				 | 
 
			 
 
			  
				| file-pointer-size | 
 
				継続レコードのアドレス。その後に続く継続レコードがない場合はゼロになります。 | 
 
			 
 
			  
				| n | 
 
				主キーのキー ブロック | 
 
			 
 
			  
				| ... | 
 
				ファイルの副キーごとに 1 つあります。 | 
 
			 
 
			  
				| n | 
 
				キー ブロック | 
 
			 
 
			  
				| 1 | 
 
				予約済み。値は x"FF" です。 | 
 
			 
 
			  
				| 1 | 
 
				予約済み。値は x"7E" です。 | 
 
			 
 
		  
 
		
 
 
	  
 
	 IDXFORMAT"8" または IDXFORMAT"12" 以外の形式の索引ファイルでは、キー ブロックは次のような構造になります。
 
	  
	 
 
		   
		   
		   
			  
				| サイズ | 
 
				フィールドの説明 | 
 
			 
 
		  
 
		   
			  
				| 2 | 
 
				このエントリの長さ (バイト数) | 
 
			 
 
			  
				| 4 | 
 
				このキーのルート索引ノード レコードのアドレス | 
 
			 
 
			  
				| 1 | 
 
				キー圧縮の種類 
					  
						- ビット 2
 
 
						- 後続空白文字の圧縮
 
 
					  
					  
						- ビット 1
 
 
						- 先頭文字の圧縮
 
 
					  
					  
						- ビット 0
 
 
						- 重複の圧縮
 
 
					  
				   
				 | 
 
			 
 
			  
				| 5 | 
 
				キー コンポーネント ブロック | 
 
			 
 
			  
				| ... | 
 
				キーを分割する場合は、コンポーネントごとに 1 つのブロックになります。 | 
 
			 
 
			  
				| 5 | 
 
				キー コンポーネント ブロック | 
 
			 
 
		  
 
		
 
 
	  
 
	 IDXFORMAT"8" および IDXFORMAT"12" ファイルの場合は、キー ブロックに次のフィールドが含まれます。
 
	  
	 
 
		   
		   
		   
			  
				| サイズ | 
 
				フィールドの説明 | 
 
			 
 
		  
 
		   
			  
				| 2 | 
 
				このエントリの長さ (バイト数) | 
 
			 
 
			  
				| 1 | 
 
				スパース キー文字 | 
 
			 
 
			  
				| 13 | 
 
				予約済み | 
 
			 
 
			  
				| 1 | 
 
				キー圧縮の種類 
					  
						- ビット 3
 
 
						- 後続ヌル文字の圧縮
 
 
					  
					  
						- ビット 2
 
 
						- 後続空白文字の圧縮
 
 
					  
					  
						- ビット 1
 
 
						- 先頭文字の圧縮
 
 
					  
					  
						- ビット 0
 
 
						- 重複の圧縮
 
 
					  
				   
				 | 
 
			 
 
			  
				| 1 | 
 
				キー フラグ 
					  
						- ビット 6
 
 
						- 重複可能
 
 
					  
					  
						- ビット 1
 
 
						- スパース キー
 
 
					  
				   
				 | 
 
			 
 
			  
				| 6 | 
 
				キー コンポーネント ブロック | 
 
			 
 
			  
				| ... | 
 
				キーを分割する場合は、コンポーネントごとに 1 つのブロックになります。 | 
 
			 
 
			  
				| 6 | 
 
				キー コンポーネント ブロック | 
 
			 
 
		  
 
		
 
 
	  
 
	 IDXFORMAT"8" または IDXFORMAT"12" 以外の形式の索引ファイルでは、キー コンポーネント ブロックは次のような構造になります。
 
	  
	 
 
		   
		   
		   
			  
				| サイズ | 
 
				フィールドの説明 | 
 
			 
 
		  
 
		   
			  
				| 2 | 
 
				 
				   
					  
						- ビット 15
 
 
						- 重複の可否を示すフラグ。このフラグを設定すると、重複が許可されます。
 
 
					  
					  
						- ビット 14 から 0
 
 
						- コンポーネントの長さ (バイト数)
 
 
					  
				   
 
				 | 
 
			 
 
			  
				| 2 | 
 
				データ レコード内のコンポーネントのオフセット。値は 0 以上です。 | 
 
			 
 
			  
				| 1 | 
 
				コンポーネントの種類。値はゼロです。 | 
 
			 
 
		  
 
		
 
 
	  
 
	 IDXFORMAT"8" および IDXFORMAT"12" ファイルの場合は、キー コンポーネント ブロックに次のフィールドが含まれます。
 
	  
	 
 
		   
		   
		   
			  
				| サイズ | 
 
				フィールドの説明 | 
 
			 
 
		  
 
		   
			  
				| 2 | 
 
				コンポーネントの長さ (バイト数) | 
 
			 
 
			  
				| 2 | 
 
				データ レコード内のコンポーネントのオフセット。値は 0 以上です。 | 
 
			 
 
			  
				| 1 | 
 
				コンポーネント フラグ 
					  
						- ビット 6
 
 
						- 降順
 
 
					  
				   
				 | 
 
			 
 
			  
				| 1 | 
 
				コンポーネントの種類 
					  
						- ビット 7
 
 
						- 数値
 
 
					  
					  
						- ビット 6
 
 
						- 符号付き
 
 
					  
					  
						- ビット 5 から 0
 
 
						- 数値でない場合
0 (英数字) 
						  数値の場合は、次のようになります。 
						  h"00" – DISPLAY (SIGN TRAILING INCLUDED) 
						  h"01" – DISPLAY (SIGN TRAILING SEPARATE) 
						  h"02" – DISPLAY (SIGN LEADING INCLUDED) 
						  h"03" – DISPLAY (SIGN LEADING SEPARATE) 
						  h"20" – COMP 
						  h"21" – COMP-3 
						  h"22" – COMP-X 
						  h"23" – COMP-5 
						  h"24" – FLOAT 
						 
 
					  
				   
				 |