Exemplo n.º 1
0
        void IResultWriter.WriteTableEnd()
        {
            _logResultWriter.WriteTableEnd();

            _jsonTextWriter.WriteEndArray();
            _jsonTextWriter.Close();
            _jsonTextWriter = null;
        }
Exemplo n.º 2
0
        void IResultWriter.WriteTableEnd()
        {
            _logResultWriter.WriteTableEnd();

            --_htmlTextWriter.Indent;
            _htmlTextWriter.WriteLine();
            _htmlTextWriter.WriteEndTag("table");
            _htmlTextWriter.Close();
            _htmlTextWriter = null;
        }
Exemplo n.º 3
0
    private void ReadTable(IDataReader dataReader, DataTable schemaTable, int tableIndex)
    {
        Assert.IsNotNull(dataReader);
        Assert.IsNotNull(schemaTable);
        Assert.IsInRange(tableIndex >= 0);

        using (LogFactory.Instance.GetCurrentMethodLog())
        {
            Exception exception        = null;
            var       dataReaderHelper = _provider.CreateDataReaderHelper(dataReader);
            var       schemaRows       = schemaTable.Rows;
            var       count            = schemaRows.Count;

            _resultWriter.WriteTableBegin(schemaTable);

            var fieldCount = dataReader.FieldCount;

            if (fieldCount < 0)
            {
                fieldCount = 0;
            }

            var rows = new object[_rowBlockSize][];
            int i;

            for (i = 0; i < _rowBlockSize; i++)
            {
                rows[i] = new object[fieldCount];
            }

            _rowCount = 0;
            i         = 0;
            var first         = true;
            var exitFromWhile = false;
            var stopwatch     = Stopwatch.StartNew();

            while (!_isCommandCancelled && !_thread.IsStopRequested && !exitFromWhile)
            {
                bool read;

                if (first)
                {
                    first = false;
                    _resultWriter.FirstRowReadBegin();
                    read = dataReader.Read();

                    var dataTypeNames = new string[count];

                    if (read)
                    {
                        for (var j = 0; j < count; ++j)
                        {
                            dataTypeNames[j] = dataReader.GetDataTypeName(j);
                        }
                    }

                    _resultWriter.FirstRowReadEnd(dataTypeNames);
                }
                else
                {
                    try
                    {
                        read = dataReader.Read();
                    }
                    catch (Exception e)
                    {
                        read      = false;
                        exception = e;
                    }
                }

                if (read)
                {
                    ++_rowCount;
                    dataReaderHelper.GetValues(rows[i]);
                    ++i;

                    if (i == _rowBlockSize || stopwatch.ElapsedMilliseconds >= 5000)
                    {
                        _resultWriter.WriteRows(rows, i);
                        i = 0;
                        stopwatch.Restart();
                    }

                    if (_rowCount == _maxRecords)
                    {
                        CancelWaitCallback(null);
                        break;
                    }
                }
                else
                {
                    exitFromWhile = true;
                }
            }

            if (i != _rowBlockSize)
            {
                Log.Trace("resultWriter.WriteRows(rows,i);");
                _resultWriter.WriteRows(rows, i);
            }

            Log.Write(LogLevel.Trace, "resultWriter.WriteTableEnd(rowCount);");
            _resultWriter.WriteTableEnd();

            if (_rowCount > 0)
            {
                ++_tableCount;
            }

            if (exception != null)
            {
                throw exception;
            }
        }
    }
Exemplo n.º 4
0
        void IResultWriter.WriteTableEnd()
        {
            _logResultWriter.WriteTableEnd();

            GarbageMonitor.Default.Add("DataSetResultWriter", "System.Data.DataTable", _dataTable.Rows.Count, _dataTable);
        }
Exemplo n.º 5
0
        void IResultWriter.WriteTableEnd()
        {
            _logResultWriter.WriteTableEnd();

            if (isJsonAuto)
            {
                _textWriter.Close();
                _textWriter = null;

                using (var streamReader = new StreamReader(_path))
                {
                    using (var jsonTextReader = new JsonTextReader(streamReader))
                    {
                        using (var jsonTextWriter = new JsonTextWriter(new StreamWriter(_formattedPath)))
                        {
                            jsonTextWriter.Formatting = Formatting.Indented;
                            while (true)
                            {
                                var read = jsonTextReader.Read();
                                if (!read)
                                {
                                    break;
                                }

                                switch (jsonTextReader.TokenType)
                                {
                                case JsonToken.None:
                                    break;

                                case JsonToken.StartObject:
                                    jsonTextWriter.WriteStartObject();
                                    break;

                                case JsonToken.StartArray:
                                    jsonTextWriter.WriteStartArray();
                                    break;

                                case JsonToken.StartConstructor:
                                    break;

                                case JsonToken.PropertyName:
                                    var propertyName = (string)jsonTextReader.Value;
                                    jsonTextWriter.WritePropertyName(propertyName);
                                    break;

                                case JsonToken.Comment:
                                    break;

                                case JsonToken.Raw:
                                    break;

                                case JsonToken.Integer:
                                {
                                    var value = jsonTextReader.Value;
                                    jsonTextWriter.WriteValue(value);
                                }
                                break;

                                case JsonToken.Float:
                                {
                                    var value = jsonTextReader.Value;
                                    jsonTextWriter.WriteValue(value);
                                }
                                break;

                                case JsonToken.String:
                                {
                                    var value = jsonTextReader.Value;
                                    jsonTextWriter.WriteValue(value);
                                }
                                break;

                                case JsonToken.Boolean:
                                {
                                    var value = jsonTextReader.Value;
                                    jsonTextWriter.WriteValue(value);
                                }
                                break;

                                case JsonToken.Null:
                                    break;

                                case JsonToken.Undefined:
                                    break;

                                case JsonToken.EndObject:
                                    jsonTextWriter.WriteEndObject();
                                    break;

                                case JsonToken.EndArray:
                                    jsonTextWriter.WriteEndArray();
                                    break;

                                case JsonToken.EndConstructor:
                                    break;

                                case JsonToken.Date:
                                {
                                    var value = jsonTextReader.Value;
                                    jsonTextWriter.WriteValue(value);
                                }
                                break;

                                case JsonToken.Bytes:
                                    break;

                                default:
                                    throw new ArgumentOutOfRangeException();
                                }
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 6
0
 void IResultWriter.WriteTableEnd() => _logResultWriter.WriteTableEnd();