void IResultWriter.BeforeExecuteReader(AsyncDataAdapterCommand asyncDataAdapterCommand) { _beforeExecuteReaderTimestamp = Stopwatch.GetTimestamp(); ++_commandCount; var command = asyncDataAdapterCommand.Command; var message = $"Command[{_commandCount - 1}] executing from line {asyncDataAdapterCommand.LineIndex + 1}...\r\n{command.CommandText}"; var parameters = command.Parameters; if (!parameters.IsNullOrEmpty()) { message += "\r\n" + command.Parameters.ToLogString(); } _addInfoMessage(InfoMessageFactory.Create(InfoMessageSeverity.Verbose, null, message)); _query = asyncDataAdapterCommand.Query; if (_query != null) { _fileName = asyncDataAdapterCommand.FileName; _parameters = asyncDataAdapterCommand.Parameters; _commandText = asyncDataAdapterCommand.CommandText; _results = new List <Result>(); } }
private void ExecuteReader(AsyncDataAdapterCommand asyncDataAdapterCommand, IDbCommand command) { _resultWriter.BeforeExecuteReader(asyncDataAdapterCommand); IDataReader dataReader = null; try { dataReader = command.ExecuteReader(); var fieldCount = dataReader.FieldCount; _resultWriter.AfterExecuteReader(fieldCount); var tableIndex = 0; while (!_thread.IsStopRequested) { if (fieldCount > 0) { var schemaTable = dataReader.GetSchemaTable(); if (schemaTable != null) { Log.Trace("schemaTable:\r\n{0}", schemaTable.ToStringTableString()); if (asyncDataAdapterCommand.Query != null) { Parser.ParseResult(asyncDataAdapterCommand.Query.Results[tableIndex], out var name, out var fieldName); schemaTable.TableName = name; } } ReadTable(dataReader, schemaTable, tableIndex); } if (_rowCount >= _maxRecords || !dataReader.NextResult()) { break; } tableIndex++; } } finally { if (dataReader != null) { dataReader.Close(); var recordsAffected = dataReader.RecordsAffected; _resultWriter.AfterCloseReader(recordsAffected); } } }
private void Fill() { _resultWriter.Begin(_provider); try { foreach (var command in _commands) { _command = command; Fill(command); command.Command.Dispose(); } } finally { _resultWriter.End(); _writeEnd(this); } }
private void Fill(AsyncDataAdapterCommand asyncDataAdapterCommand) { Assert.IsNotNull(asyncDataAdapterCommand); Exception exception = null; var command = asyncDataAdapterCommand.Command; try { ExecuteReader(asyncDataAdapterCommand, command); } catch (ThreadAbortException) { Thread.ResetAbort(); } catch (Exception e) { if (Thread.CurrentThread.ThreadState == ThreadState.AbortRequested) { try { Thread.ResetAbort(); } catch { } } exception = e; } finally { if (command != null && command.Parameters != null) { _resultWriter.WriteParameters(command.Parameters); } _endFill(this, exception); } }
void IResultWriter.BeforeExecuteReader(AsyncDataAdapterCommand command) { }
void IResultWriter.BeforeExecuteReader(AsyncDataAdapterCommand asyncDataAdapterCommand) => _logResultWriter.BeforeExecuteReader(asyncDataAdapterCommand);