private bool InternalRead()
 {
     if (this.isClosed)
     {
         throw new InvalidOperationException(XmlaSR.DataReaderClosedError);
     }
     if (this.xmlReader == null || this.xmlReader.ReadState == ReadState.Closed)
     {
         throw new InvalidOperationException();
     }
     if (this.emptyResult)
     {
         XmlaClient.CheckForException(this.xmlReader, null, true);
         return(false);
     }
     if (this.dataReady)
     {
         this.CompletePreviousRow();
     }
     this.dataReady = this.BeginNewRow();
     if (this.dataReady)
     {
         if (!this.sequentialAccess)
         {
             int num = this.FieldCount;
             if (this.parentReader != null)
             {
                 num++;
             }
             object[] array = new object[num];
             this.GetRowXmlValues(array);
             if (this.parentReader != null)
             {
                 array[this.ParentId] = this.currentParentRow;
             }
             this.dtStore.Rows.Add(array);
         }
     }
     else if (this.Depth == 0)
     {
         XmlaClient.EndRowsetResponseS(this.xmlReader);
     }
     return(this.dataReady);
 }
Beispiel #2
0
 public static void CheckException(XmlReader reader)
 {
     XmlaClient.CheckForException(reader, null, true);
 }