Поделиться через


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

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

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

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

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