protected virtual bool ReadRowFromDataSet()
 {
     if (m_nextDataFieldRowToProcess != null)
     {
         m_nextDataFieldRowToProcess.SetFields(m_odpContext.ReportObjectModel.GetFieldsImplForUpdate(m_idcDataSet));
         m_nextDataFieldRowToProcess = null;
     }
     else
     {
         if (m_dataSource == null)
         {
             if (m_odpContext.QueryRestartInfo != null)
             {
                 SetupRelationshipQueryRestart();
             }
             m_dataSource = new RuntimeIdcIncrementalDataSource(m_idcDataSet, m_odpContext);
             m_dataSource.Initialize();
         }
         if (!m_dataSource.SetupNextRow())
         {
             return(false);
         }
     }
     return(true);
 }
 public virtual void Close()
 {
     if (m_dataSource != null)
     {
         m_dataSource.RecordTimeDataRetrieval();
         m_dataSource.RecordSkippedRowCount(m_skippedRowCount);
         m_dataSource.Teardown();
         m_dataSource = null;
     }
 }