internal override void EraseDataChunk() { if (!m_dataSet.IsReferenceToSharedDataSet && m_canWriteDataChunk) { RuntimeDataSet.EraseDataChunk(m_odpContext, m_dataSetInstance, ref m_dataChunkWriter); } }
internal override void EraseDataChunk() { if (WritesDataChunk) { RuntimeDataSet.EraseDataChunk(m_odpContext, m_dataSetInstance, ref m_dataChunkWriter); } }
private void ExecuteParallelDataSets() { ThreadSet threadSet = new ThreadSet(m_runtimeDataSets.Count - 1); try { for (int i = 1; i < m_runtimeDataSets.Count; i++) { RuntimeAtomicDataSet runtimeAtomicDataSet = (RuntimeAtomicDataSet)m_runtimeDataSets[i]; runtimeAtomicDataSet.InitProcessingParams(null, m_transaction); threadSet.TryQueueWorkItem(m_odpContext, runtimeAtomicDataSet.ProcessConcurrent); } RuntimeAtomicDataSet obj = (RuntimeAtomicDataSet)m_runtimeDataSets[0]; obj.InitProcessingParams(m_connection, m_transaction); obj.ProcessConcurrent(null); } catch (Exception e) { if (m_odpContext.AbortInfo != null) { m_odpContext.AbortInfo.SetError(e, m_odpContext.ProcessingAbortItemUniqueIdentifier); } throw; } finally { threadSet.WaitForCompletion(); threadSet.Dispose(); } if (!NeedsExecutionLogging || m_odpContext.JobContext == null) { return; } DataProcessingMetrics dataProcessingMetrics = null; for (int j = 0; j < m_runtimeDataSets.Count; j++) { RuntimeDataSet runtimeDataSet = m_runtimeDataSets[j]; if (dataProcessingMetrics == null || runtimeDataSet.DataSetExecutionMetrics.TotalDurationMs > dataProcessingMetrics.TotalDurationMs) { dataProcessingMetrics = runtimeDataSet.DataSetExecutionMetrics; } } m_executionMetrics.Add(dataProcessingMetrics); }
protected override List <RuntimeDataSet> CreateRuntimeDataSets() { int count = base.DataSourceDefinition.DataSets.Count; List <RuntimeDataSet> list = new List <RuntimeDataSet>(count); for (int i = 0; i < count; i++) { DataSet dataSet = base.DataSourceDefinition.DataSets[i]; RuntimeDataSet runtimeDataSet = null; if (!dataSet.UsedOnlyInParameters) { m_initialNoRowsState = true; } if (!dataSet.UsedOnlyInParameters || base.DataSourceDefinition.Transaction) { if (base.OdpContext.InSubreport && base.OdpContext.FoundExistingSubReportInstance) { DataSetInstance dataSetInstance = base.OdpContext.GetDataSetInstance(dataSet); m_initialNoRowsState &= dataSetInstance.NoRows; } else { DataSetInstance dataSetInstance2 = new DataSetInstance(dataSet); m_reportInstance.SetDataSetInstance(dataSetInstance2); if (dataSet.IndexInCollection == base.ReportDefinition.FirstDataSetIndexToProcess && !dataSet.UsedOnlyInParameters) { runtimeDataSet = new RuntimeOnDemandDataSet(base.DataSourceDefinition, dataSet, dataSetInstance2, base.OdpContext, processFromLiveDataReader: true, generateGroupTree: true, canWriteDataChunk: true); } else { bool processRetrievedData = !dataSet.UsedOnlyInParameters; runtimeDataSet = new RuntimePrefetchDataSet(base.DataSourceDefinition, dataSet, dataSetInstance2, base.OdpContext, canWriteDataChunk: true, processRetrievedData); } } } if (runtimeDataSet != null) { list.Add(runtimeDataSet); } } return(list); }
protected bool CheckNoRows(RuntimeDataSet runtimeDataSet) { return(runtimeDataSet?.NoRows ?? false); }