private bool RunEmbeddedQuery(List <AspNetCore.ReportingServices.ReportIntermediateFormat.ParameterValue> queryParams, object[] paramValues) { Global.Tracer.Assert(base.m_odpContext.StateManager.ExecutedQueryCache == null, "When query execution caching is enabled, new queries must not be run outside query prefetch."); IDataReader reader = base.RunLiveQuery(queryParams, paramValues); return(RuntimeDataSet.ReaderExtensionsSupported(reader)); }
private bool TakeOwnershipFromExistingQuery(ExecutedQuery query) { IDataReader dataReader = null; try { base.m_executionMetrics.Add(query.ExecutionMetrics); base.m_executionMetrics.CommandText = query.ExecutionMetrics.CommandText; query.ReleaseOwnership(ref base.m_command, ref base.m_commandWrappedForCancel, ref dataReader); this.ExtractRewrittenCommandText(base.m_command); this.StoreDataReader(dataReader, query.ErrorInspector); return(RuntimeDataSet.ReaderExtensionsSupported(dataReader)); } catch (RSException) { this.EagerInlineReaderCleanup(ref dataReader); throw; } catch (Exception e) { if (AsynchronousExceptionDetection.IsStoppingException(e)) { throw; } this.EagerInlineReaderCleanup(ref dataReader); throw; } }
protected override void StoreDataReader(IDataReader reader, DataSourceErrorInspector errorInspector) { bool readerExtensionsSupportedLocal = RuntimeDataSet.ReaderExtensionsSupported(reader); if (reader.FieldCount > 0 || base.m_odpContext.IsSharedDataSetExecutionOnly) { this.CreateProcessingDataReader(reader, errorInspector, readerExtensionsSupportedLocal); } else { this.EagerInlineReaderCleanup(ref reader); base.DisposeCommand(); } }