Обработка сложных структур данных в памяти |
Если необходимо держать в памяти несколько связанных таблиц, все они открываются в режиме fmMemory. Для того, что бы использовать все поддерево совместно с таблицей в памяти, при открытии необходимо указать fmSubTree совместно с fmMemory.
Можно применять все режимы открытия, описанные в разделе "Работа с таблицами в памяти". Указанный режим открытия будет распространен на весь сабселект или поддерево. Это же касается использования функций ReinitTable, mtRetrieve, mtFlush. Аналогичные функции реализуются и у логической таблицы и распространяются на все ее узлы.
Таким образом, программист получает возможность в какой-то момент времени перевести всю или часть логической таблицы в память, произвести всю необходимую обработку в памяти, а потом сбросить проведенные изменения на диск, если это требуется.
Обработка сложных структур накладывает некоторые ограничения на множество операций, применимых к ТП. Не рекомендуется использовать операции, изменяющие структуру реляционных связей в логической таблице, для таблиц, попадающих в одну ТП (например, pushBounds и popBounds).
Информация в ТП считается актуальной до тех пор, пока не будут сделаны структурные изменения, приводящие к невозможности использовать существующую информацию в ТП. После проведения структурных изменений информация в ТП считается потерянной.
При попытке снять с ТП ограничения, наложенные до считывания данных, ошибка не выдается. Весь контроль возлагается на прикладного программиста.
Атлантис 5.00.04.