На главную страницу
Форум txt.version   




Статья :: Локальный буфер

 

Локальный буфер

После передачи клиенту записи набора данных размещаются в локальном буфере, размер которого определяется свойством

property CacheSize: Integer;

Значение свойства есть число записей, помещаемых в локальный буфер, и оно не может быть меньше 1. Очевидно, что при достаточно большом размере буфера компонент будет обращаться к источнику данных не так часто, но при этом большой буфер заметно замедлит открытие набора данных. Кроме этого, при выборе размера локального буфера необходимо учитывать доступную компоненту память. Это можно сделать путем несложных вычислений:

"acheSizelnMem := ADODataSet.CacheSize * ADODataSet.RecordSize;

где RecordSize — свойство

 property RecordSize: Word;

возвращающее размер одной записи в байтах.

Как видите, компоненты ADO не избежали общей проблемы клиентских данных — при плохом качестве соединения работа приложения замедляется. Однако кое-что все-таки сделать можно. Если при навигации по записям вам не требуется отображать данные в визуальных компонентах пользовательского интерфейса, свойство property BlockReadSize: Integer;

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

property MaxRecords: Integer

задает максимальное число записей набора данных. По умолчанию свойство имеет значение 0 и набор данных не ограничен.

Общее число записей набора данных на этот момент возвращает свойство только для чтения

property RecordCount: Integer;

При достижении последней записи набора данных вызывается метод-обработчик

TEndOfRecordsetEvent = procedure (DataSet: TCustomADODataSet;

var MoreData: WordBool;

var EventStatus: TEventStatus) of object;

property OnEndOfRecordset: TEndOfRecordsetEvent;

При этом параметр MoreData показывает, действительно ли достигнут конец набора данных. Если MoreData = True, то это означает, что в хранилище данных еще имеются записи, не переданные клиенту.

 

Локальный буфер

страницы в данном разделе 
 ГЛАВА 19   ГЛАВА 19Использование ADO средствами Delphi
 Основы ADO  Перечислители
 Объекты соединения с источниками данных  Сессия
 Транзакции  Наборы рядов
 Команды  Провайдеры ADO
 Реализация ADO в Delphi  Компоненты ADO
 Механизм соединения с хранилищем данных ADO  Компонент TADOConnection
 Настройка соединения  Управление соединением
 Доступ к связанным наборам данных и командам ADO  Объект ошибок ADO
 Транзакции  Наборы данных ADO
 Класс TCustomADODataSet  Набор данных
 Курсор набора данных  Локальный буфер
 Состояние записи  Фильтрация
 Поиск  Сортировка
 Команда ADO  Групповые операции
 Параметры  Класс TParameters
 Класс TParameter  Компонент TADODataSet
 Компонент TADOTable  Компонент TADOQuery
 Компонент TADOStoredProc  Команды ADO
 Объект ошибок ADO  Пример приложения ADO
 Соединение с источником данных  Групповые операции
 Фильтрация  Сортировка
 Резюме   


Разделы
Околокомпьютерная литература (375)
Программирование (102)
Программы (75)
ОС и Сети (49)
Интернет (29)
Аппаратное обеспечение (16)
Базы данных (6)
Flutter
React Native
Xamarin

Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)

PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C





 
©  programming-lang.com  справочник программиста
©  http://ekb.programming-lang.com/tlg/  бесплатный телеграм бот
©  http://ekb.programming-lang.com/tlg/  бесплатный телеграм бот
React Native
demo forum