OLE DB Provider Guide (v11)

イベントの使用 (OLE DB プロバイダー)

メモ:ADO イベントを使用する際は、1 つのイベントでほかのイベントを生成する呼び出しを行わないよう十分に注意する必要があります。これは、無限ループに陥る可能性が高くなるからです。無限ループが発生する例をより具体的に挙げると、MoveComplete イベントの代わりに、WillMove イベントを使用してファイルの最後(EOF)条件を処理する場合です。

Private Sub Adodc1_WillMove(ByVal adReason As ADODB.EventReasonEnum,  
        adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) 
    If Adodc1.Recordset.EOF Then Adodc1.Recordset.MoveLast 
End Sub 

このコードでは、無限ループに陥り、その結果メモリがいっぱいになってスタック領域が不足するエラーが発生します。このエラーを回避するには、Adodc1_MoveComplete イベントを使用する必要があります。


ブックマークの使用 (OLE DB プロバイダー)

Field オブジェクトの使用 (OLE DB プロバイダー)