private void CloseConnection() { if (this.m_needToCloseConnection) { RuntimeDataSource.CloseConnection(this.m_connection, this.m_dataSource, this.m_odpContext, this.m_executionMetrics); if (this.NeedsExecutionLogging && this.m_odpContext.ExecutionLogContext != null) { int num = (this.m_runtimeDataSets != null) ? this.m_runtimeDataSets.Count : 0; List <DataProcessingMetrics> list = new List <DataProcessingMetrics>(); for (int i = 0; i < num; i++) { if (this.m_runtimeDataSets[i].IsConnectionOwner) { this.m_odpContext.ExecutionLogContext.AddDataSourceParallelExecutionMetrics(this.m_dataSource.Name, this.m_dataSource.DataSourceReference, this.m_dataSource.Type, this.m_runtimeDataSets[i].DataSetExecutionMetrics); } else { list.Add(this.m_runtimeDataSets[i].DataSetExecutionMetrics); } } this.m_odpContext.ExecutionLogContext.AddDataSourceMetrics(this.m_dataSource.Name, this.m_dataSource.DataSourceReference, this.m_dataSource.Type, this.m_executionMetrics, list.ToArray()); } } this.m_connection = null; }
protected void CloseConnection() { if (this.m_isConnectionOwner && this.m_dataSourceConnection != null) { RuntimeDataSource.CloseConnection(this.m_dataSourceConnection, this.m_dataSource, this.m_odpContext, this.m_executionMetrics); this.m_dataSourceConnection = null; } }
public void Close() { IDataReader dataReader = Interlocked.Exchange <IDataReader>(ref this.m_dataReader, (IDataReader)null); if (dataReader != null) { QueryExecutionUtils.DisposeDataExtensionObject(ref dataReader, "data reader", this.m_dataSet.Name, this.m_executionMetrics, DataProcessingMetrics.MetricType.DisposeDataReader); } this.m_commandWrappedForCancel = null; IDbCommand dbCommand = Interlocked.Exchange <IDbCommand>(ref this.m_command, (IDbCommand)null); if (dbCommand != null) { QueryExecutionUtils.DisposeDataExtensionObject(ref dbCommand, "command", this.m_dataSet.Name); } IDbConnection dbConnection = Interlocked.Exchange <IDbConnection>(ref this.m_connection, (IDbConnection)null); if (dbConnection != null) { RuntimeDataSource.CloseConnection(dbConnection, this.m_dataSource, this.m_odpContext, this.m_executionMetrics); } }