TgsMMFStream (постановка)

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
Строка 1: Строка 1:
 
 
Вспомогательный класс для механизма сохранения в поток. Предназначен для замены TClientDataSet. Использует отображаемые в память файлы для хранения объемов данных, превышающих размер доступной оперативной памяти. Может работать в двух режимах: записи и считывания.
 
Вспомогательный класс для механизма сохранения в поток. Предназначен для замены TClientDataSet. Использует отображаемые в память файлы для хранения объемов данных, превышающих размер доступной оперативной памяти. Может работать в двух режимах: записи и считывания.
  
Строка 23: Строка 22:
 
=== Свойства ===
 
=== Свойства ===
  
RecordCount -- количество записей. Только для чтения.
+
;RecordCount : количество записей. Только для чтения.
CurrentRecord -- номер текущей записи. Только для чтения.
+
;CurrentRecord : номер текущей записи. Только для чтения.
EOF -- Только для чтения.
+
;EOF : Только для чтения.
  
 
=== Формат потока ===
 
=== Формат потока ===

Версия 20:20, 23 октября 2008

Вспомогательный класс для механизма сохранения в поток. Предназначен для замены TClientDataSet. Использует отображаемые в память файлы для хранения объемов данных, превышающих размер доступной оперативной памяти. Может работать в двух режимах: записи и считывания.

Содержание

Режим записи

  1. Создание объекта
  2. AddFieldDef для каждого поля
  3. Цикл для каждой записи:
    1. SetFromDataSetField для каждого поля
    2. Post
  4. SaveToStream
  5. Уничтожение объекта

Режим чтения

  1. Создание объекта
  2. LoadFromStream
  3. Цикл для каждой записи:
    1. SetDataSetField для каждого поля
    2. Next
  4. Уничтожение объекта

Свойства

RecordCount 
количество записей. Только для чтения.
CurrentRecord 
номер текущей записи. Только для чтения.
EOF 
Только для чтения.

Формат потока

Поток состоит из заголовка и данных. Заголовок содержит информацию о полях и о количестве записей. Данные -- непрерывный поток с данными всех записей. Разделителей между записями нет. Т.е. окончание записи находится там, где оканчиваются данные последнего поля в списке. Если прочитано записей меньше, чем находится в заголовке, то выдается исключение.

См. также

Managing Memory-Mapped Files in Win32

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты