レコードセットの境界

レコードセット では、データセットの先頭と末尾を区切るために、 BOF プロパティと EOF プロパティがサポートされています。 BOFEOF は、レコードセット の先頭と末尾に配置される "ファントム" レコードと考えることができます。 BOFEOF をカウントすると、サンプル レコードセット は次のようになります。

ProductID ProductName UnitPrice
BOF
7 あなた Bob's 有機理屈 Pears 30.0000
14 Tofu 23.2500
28 Rssle ラウト 45.6000
51 Manjimup 理屈リンゴ 53.0000
74 Longlife Tofu 10.0000
EOF

カーソルが最後のレコードを越えて移動すると、 EOFTrue に設定されます。それ以外の場合、値は False です。 同様に、カーソルが最初のレコードの前に移動すると、 BOFTrue に設定されます。それ以外の場合、値は False です。 これらのプロパティは、次の JScript コードフラグメントに示すように、通常、データセット内のレコードを列挙するために使用されます。

while (objRecordset.EOF != true)   
{  
   // Work on the current record.  
   ...  
   // Advance the cursor forward to the next record.  
   objRecordset.MoveNext();  
}  
or  
while (objRecordset.BOF != true)   
{  
   // Work on the current record.  
   ...  
   // Move the cursor to the previous record.  
   objRecordset.MovePrevious();  
}  

BOFEOF の両方が True の場合、レコードセット オブジェクトは空になります。 新しく開いた、空でない レコードセット オブジェクトでは、両方のプロパティが False になります。 次の JScript コードフラグメントに示すように、 BOF プロパティと EOF プロパティを一緒に使用して、レコードセット オブジェクトが空であるかどうかを判断できます。

if (objRecordset.EOF == true && objRecordset.BOF == true)  
{  
   WScript.Echo("we got an empty dataset.");  
}  
else  
{  
   WScript.Echo("we got a full dataset.");  
}  

このスキームは、すべての種類のカーソルに対して機能し、基になるプロバイダーからは独立しています。 その RecordCount プロパティの値がゼロ (0) であるかどうかをチェックして、レコードセット オブジェクトの empを判別しようとする場合は、結果のレコード数の返却をサポートする適切なカーソルとプロバイダーを使用するための予防措置をとる必要があります。

レコードセット オブジェクト内の最後のレコードを削除すると、そのカーソルは不確定状態のままになります。 現在のレコードの位置を変更するには、プロバイダーに応じて、 BOF プロパティと EOF プロパティを False のままにします。 詳細については、「 Delete メソッドを使用したレコードの削除」を参照してください。