Реализация класса DataReader для модуля обработки данных

Объект DataReader позволяет клиенту принимать доступный только для чтения однопроходный поток данных из источника данных. Результаты возвращаются после выполнения запроса и хранятся в сетевом буфере на клиенте до тех пор, пока не будут запрошены с помощью метода Read класса DataReader. Чтобы создать класс DataReader, следует реализовать IDataReader и, возможно, реализовать IDataReaderExtension. Использование объекта DataReader повышает производительность приложения, извлекая данные сразу после его доступности, а не ожидая возврата всех результатов запроса, и (по умолчанию) сохраняя только одну строку в памяти, уменьшая затраты на систему.

После создания экземпляра класса Command создайте объект DataReader, вызвав Command.ExecuteReader для получения строк из источника данных. Реализация DataReader должна предоставлять две основные возможности: однопроходный доступ к результирующим наборам, полученным при выполнении команды, и доступ к типам столбцов, именам и значениям в каждой строке. Клиенты используют метод Read объекта DataReader для получения строки из результатов запроса.

В конструктор отчетов объект DataReader используется для получения списка полей и сведений о схеме результирующий набор. Это получение осуществляется путем реализации методов GetName, GetValue, GetFieldType и GetOrdinalIDataReader интерфейса.

Экземпляр IDataReaderExtension позволяет предоставлять конкретные сведения статистической обработки результирующего набора. Пример реализации класса DataReader см. в разделе Образцы продуктов служб SQL Server Reporting Services.