Пример #1
0
        private void GetSharedDataSetChunkAndProcess(bool processAsIRowConsumer, DataSetInfo dataSetInfo, ParameterInfoCollection datasetParameterCollection)
        {
            Global.Tracer.Assert(m_odpContext.ExternalProcessingContext != null && m_odpContext.ExternalProcessingContext.DataSetExecute != null, "Missing handler for shared dataset reference execution");
            string text = null;

            if (!m_odpContext.ProcessReportParameters)
            {
                text = Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ChunkManager.GenerateDataChunkName(m_odpContext, m_dataSet.ID, m_odpContext.InSubreport);
            }
            IRowConsumer originalRequest = processAsIRowConsumer ? ((IRowConsumer)this) : null;
            bool         originalRequestNeedsDataChunk = !processAsIRowConsumer || WritesDataChunk;

            m_odpContext.ExternalProcessingContext.DataSetExecute.Process(dataSetInfo, text, originalRequestNeedsDataChunk, originalRequest, datasetParameterCollection, m_odpContext.ExternalProcessingContext);
            if (processAsIRowConsumer)
            {
                if (!m_odpContext.ProcessReportParameters)
                {
                    m_odpContext.OdpMetadata.AddDataChunk(text, m_dataSetInstance);
                }
            }
            else
            {
                m_dataReader = new ProcessingDataReader(m_dataSetInstance, m_dataSet, m_odpContext, overrideWithSharedDataSetChunkSettings: true);
            }
        }
        private bool FetchSharedDataSetCached()
        {
            Microsoft.ReportingServices.ReportIntermediateFormat.DataSet dataSet = new Microsoft.ReportingServices.ReportIntermediateFormat.DataSet(m_dataSetDefinition.DataSetCore);
            ProcessingDataReader processingDataReader = new ProcessingDataReader(new DataSetInstance(dataSet), dataSet, m_odpContext, overrideWithSharedDataSetChunkSettings: true);
            IRowConsumer         consumerRequest      = m_odpContext.ExternalDataSetContext.ConsumerRequest;

            consumerRequest.SetProcessingDataReader(processingDataReader);
            long num = 0L;

            try
            {
                while (processingDataReader.GetNextRow())
                {
                    Microsoft.ReportingServices.ReportIntermediateFormat.RecordRow underlyingRecordRowObject = processingDataReader.GetUnderlyingRecordRowObject();
                    consumerRequest.NextRow(underlyingRecordRowObject);
                    num++;
                }
            }
            finally
            {
                if (m_odpContext.JobContext != null)
                {
                    lock (m_odpContext.JobContext.SyncRoot)
                    {
                        m_odpContext.JobContext.RowCount += num;
                    }
                }
            }
            return(true);
        }
Пример #3
0
        private bool FetchSharedDataSetCached()
        {
            AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet dataSet = new AspNetCore.ReportingServices.ReportIntermediateFormat.DataSet(this.m_dataSetDefinition.DataSetCore);
            DataSetInstance      dataSetInstance      = new DataSetInstance(dataSet);
            ProcessingDataReader processingDataReader = new ProcessingDataReader(dataSetInstance, dataSet, this.m_odpContext, true);
            IRowConsumer         consumerRequest      = this.m_odpContext.ExternalDataSetContext.ConsumerRequest;

            consumerRequest.SetProcessingDataReader(processingDataReader);
            long num = 0L;

            try
            {
                while (processingDataReader.GetNextRow())
                {
                    AspNetCore.ReportingServices.ReportIntermediateFormat.RecordRow underlyingRecordRowObject = processingDataReader.GetUnderlyingRecordRowObject();
                    consumerRequest.NextRow(underlyingRecordRowObject);
                    num++;
                }
            }
            finally
            {
                if (this.m_odpContext.JobContext != null)
                {
                    lock (this.m_odpContext.JobContext.SyncRoot)
                    {
                        this.m_odpContext.JobContext.RowCount += num;
                    }
                }
            }
            return(true);
        }
Пример #4
0
 public DataSetContext(string targetChunkNameInSnapshot, string cachedDataChunkName, bool mustCreateDataChunk, IRowConsumer consumerRequest, ICatalogItemContext itemContext, RuntimeDataSourceInfoCollection dataSources, string requestUserName, DateTime executionTimeStamp, ParameterInfoCollection parameters, IChunkFactory createChunkFactory, ReportProcessing.ExecutionType interactiveExecution, CultureInfo culture, UserProfileState allowUserProfileState, UserProfileState initialUserProfileState, IProcessingDataExtensionConnection createDataExtensionInstanceFunction, CreateAndRegisterStream createStreamCallbackForScalability, ReportRuntimeSetup dataSetRuntimeSetup, IJobContext jobContext, IDataProtection dataProtection)
 {
     m_targetChunkNameInSnapshot = targetChunkNameInSnapshot;
     m_cachedDataChunkName       = cachedDataChunkName;
     m_mustCreateDataChunk       = mustCreateDataChunk;
     m_consumerRequest           = consumerRequest;
     m_itemContext          = itemContext;
     m_dataSources          = dataSources;
     m_requestUserName      = requestUserName;
     m_executionTimeStamp   = executionTimeStamp;
     m_parameters           = parameters;
     m_createChunkFactory   = createChunkFactory;
     m_interactiveExecution = interactiveExecution;
     m_culture = culture;
     m_allowUserProfileState               = allowUserProfileState;
     m_initialUserProfileState             = initialUserProfileState;
     m_createDataExtensionInstanceFunction = createDataExtensionInstanceFunction;
     m_createStreamCallbackForScalability  = createStreamCallbackForScalability;
     m_dataSetRuntimeSetup = dataSetRuntimeSetup;
     m_jobContext          = jobContext;
     m_dataProtection      = dataProtection;
 }
 public RuntimeSharedDataSet(Microsoft.ReportingServices.ReportIntermediateFormat.DataSource dataSource, Microsoft.ReportingServices.ReportIntermediateFormat.DataSet dataSet, DataSetInstance dataSetInstance, OnDemandProcessingContext processingContext)
     : base(dataSource, dataSet, dataSetInstance, processingContext, dataSet.DataSetCore.Filters != null || dataSet.DataSetCore.HasCalculatedFields(), null)
 {
     m_consumerRequest = m_odpContext.ExternalDataSetContext.ConsumerRequest;
 }