Ejemplo n.º 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);
            }
        }
Ejemplo n.º 2
0
 public virtual void SetProcessingDataReader(IProcessingDataReader dataReader)
 {
     m_dataReader = dataReader;
     m_dataReader.OverrideWithDataReaderSettings(m_odpContext, m_dataSetInstance, m_dataSet.DataSetCore);
     if (base.ProcessRetrievedData)
     {
         m_dataReader.GetDataReaderMappingForRowConsumer(m_dataSetInstance, out m_iRowConsumerMappingIdentical, out m_iRowConsumerMappingDataSetFieldIndexesToDataChunk);
     }
     InitializeBeforeProcessingRows(base.HasServerAggregateMetadata);
 }
Ejemplo n.º 3
0
        private void CreateProcessingDataReader(IDataReader reader, DataSourceErrorInspector errorInspector, bool readerExtensionsSupportedLocal)
        {
            List <Microsoft.ReportingServices.ReportIntermediateFormat.Field> fields = m_dataSet.Fields;
            int num = 0;

            if (fields != null)
            {
                num = ((!m_odpContext.IsSharedDataSetExecutionOnly) ? m_dataSet.NonCalculatedFieldCount : m_dataSet.Fields.Count);
            }
            string[] array  = new string[num];
            string[] array2 = new string[num];
            for (int i = 0; i < num; i++)
            {
                Microsoft.ReportingServices.ReportIntermediateFormat.Field field = fields[i];
                array[i]  = field.DataField;
                array2[i] = field.Name;
            }
            m_executionMetrics.StartTimer(DataProcessingMetrics.MetricType.DataReaderMapping);
            m_dataReader = new ProcessingDataReader(m_odpContext, m_dataSetInstance, m_dataSet.Name, reader, readerExtensionsSupportedLocal || m_dataSet.HasAggregateIndicatorFields, array2, array, errorInspector);
            m_executionMetrics.RecordTimerMeasurement(DataProcessingMetrics.MetricType.DataReaderMapping);
        }