TgsMMFStream (постановка)
SYSDBA (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) |
||
| Строка 1: | Строка 1: | ||
| + | Вспомогательный класс для механизма сохранения в поток. Предназначен для замены TClientDataSet. Использует отображаемые в память файлы для хранения объемов данных, превышающих размер доступной оперативной памяти. Может работать в двух режимах: записи и считывания. | ||
| + | |||
| + | === Режим записи === | ||
| + | |||
| + | # Создание объекта | ||
| + | # AddFieldDef для каждого поля | ||
| + | # Цикл для каждой записи: | ||
| + | ## SetFromDataSetField для каждого поля | ||
| + | ## Post | ||
| + | # SaveToStream | ||
| + | # Уничтожение объекта | ||
| + | |||
| + | === Режим чтения === | ||
| + | |||
| + | # Создание объекта | ||
| + | # LoadFromStream | ||
| + | # Цикл для каждой записи: | ||
| + | ## SetDataSetField для каждого поля | ||
| + | ## Next | ||
| + | # Уничтожение объекта | ||
| + | |||
| + | === Свойства === | ||
| + | |||
| + | RecordCount -- количество записей. Только для чтения. | ||
| + | CurrentRecord -- номер текущей записи. Только для чтения. | ||
| + | EOF -- Только для чтения. | ||
| + | |||
| + | === Формат потока === | ||
| + | |||
| + | Поток состоит из заголовка и данных. Заголовок содержит информацию о полях и о количестве записей. Данные -- непрерывный поток с данными всех записей. Разделителей между записями нет. Т.е. окончание записи находится там, где оканчиваются данные последнего поля в списке. Если прочитано записей меньше, чем находится в заголовке, то выдается исключение. | ||
=== См. также === | === См. также === | ||
Версия 20:16, 23 октября 2008
Вспомогательный класс для механизма сохранения в поток. Предназначен для замены TClientDataSet. Использует отображаемые в память файлы для хранения объемов данных, превышающих размер доступной оперативной памяти. Может работать в двух режимах: записи и считывания.
Содержание |
Режим записи
- Создание объекта
- AddFieldDef для каждого поля
- Цикл для каждой записи:
- SetFromDataSetField для каждого поля
- Post
- SaveToStream
- Уничтожение объекта
Режим чтения
- Создание объекта
- LoadFromStream
- Цикл для каждой записи:
- SetDataSetField для каждого поля
- Next
- Уничтожение объекта
Свойства
RecordCount -- количество записей. Только для чтения. CurrentRecord -- номер текущей записи. Только для чтения. EOF -- Только для чтения.
Формат потока
Поток состоит из заголовка и данных. Заголовок содержит информацию о полях и о количестве записей. Данные -- непрерывный поток с данными всех записей. Разделителей между записями нет. Т.е. окончание записи находится там, где оканчиваются данные последнего поля в списке. Если прочитано записей меньше, чем находится в заголовке, то выдается исключение.