Подключение к огромной базе данных CSV.

30.04.2017

Не так давно в FastReport .NET была добавлена возможность загружать данные из csv-файла. Иными словами, файл в формате CSV теперь можно использовать в качестве источника данных.

Спустя какое-то время от одного из пользователей поступил интересный запрос в техподдержку. Он утверждал, что у него есть CSV файл который не открывается, вместо этого появляется сообщение об ошибке. Пользователь любезно предоставил этот файл для тестирования.

При первом взгляде возникла мысль - файл слишком большой, это и является причиной того, что он не открывается. Но при дальнейшем изучении выяснилось, что проблема не в размере файла. Как оказалось, файл не совсем соответствует спецификации CSV. В файле встречаются строки, не содержащие разделителей. Судя по всему, они используются в качестве комментариев, при этом никаких данных в себе не несут.

Было принято решение  игнорировать подобные строки при загрузке данных. В результате файл стал загружаться без проблем.

Казалось бы, проблема решена и можно успокоиться, но не давала покоя идея о большом csv-файле. После недолгих поисков был найден действительно огромный файл. Размер этого файла 441 мегабайт, казалось бы - не очень внушительно, но, тем не менее, это 31 столбец и 2 458 525 строк.

Тестирование загрузки этого файла принесло двоякие результаты. С одной стороны, файл открывался, что несомненно радовало. Но очень печалило то, что на загрузку файла уходило без малого полчаса.

Как известно путей решения этой проблемы два. Но покупать новый компьютер как-то не хотелось. Поэтому пришлось потратить некоторое время на оптимизацию кода. В результате удалось добиться загрузки файла в течение двух минут.

.NET .NET FastReport FastReport CSV CSV
21 апреля 2025

Как работают RFID-метки в FastReport VCL

В этой статье мы рассмотрим принцип работы RFID-меток с новым объектом TfrxDeviceCommand в FastReport VCL с релизом 2025.2.
21 апреля 2025

Работа с компонентом TfrShellTreeView в FastReport VCL

В данной статье мы рассмотрим компонент TfrShellTreeView. Он предназначен для отображения элементов файловой системы и частично является аналогом компонентов TDirectoryListBox, TDirectoryOutline и TShellTreeView.
8 апреля 2025

Как настроить подключение к Apache Ignite в FastReport .NET

В этой статье мы рассмотрим, как настроить подключение к Apache Ignite в FastReport .NET. Вы узнаете, какие шаги необходимо выполнить для подключения плагина через код и дизайнер отчетов.