In Memory драйвер - это новый стандартный файловый драйвер для Clarion. In Memory драйвер - это ISAM драйвер, но в отличие от всех ISAM драйверов, этот драйвер не использует для хранения данных дисковые файлы.
Все данные хранятся в памяти компьютера, благодаря чему драйвер обладает рядом уникальных свойств:
рекордно высокое быстродействие;
исключительно монопольгый доступ к данным. Загрузив данные в MEMORY-файл, Вы можете быть уверены в полной их безопасности и конфедициальности. Даже два экземпляра программы, выполняющиеся на одном ПК, будут работать с разными экземплярами данных. Добавим, что данные будут автоматически уничтожены при завершении программы (любым способом). Это оказывается весьма полезным для WEB-приложений. Кроме автоматического уничтожения всех загруженных данных у Вас никогда не будет проблем с потерянными временными файлами.
поскольку MEMORY-файлы создаются при каждом запуске приложения заново, нет необходимости в конвертации данных при изменении формата записи.
MEMORY-файлы можно использовать вместо глабыльных QUEUE структур, при этом вам не нужно обеспечивать синхронизацию доступа из разных процессов, поскольку такая синхронизация уже встроена в драйвер.
Основное назначение этого драйвера - создание временных индивидуальных таблиц и работа с ними. Вот некоторые возможные области применения драйвера:
Временная таблица для ввода и редактирования записей дочернего файла с последующей выгрузкой данных в БД в рамках одной транзакции с родительским файлом.
Буфер для размещения результатов SQL запроса. Данные в таком буфере можно в дальнейшем фильтровать, сортировать, исполнять QBE/QBF запросы с помощью любых стандартных или специальных средств совершенно не затрагивая сервер и сетевые ресурсы. Более того, такая методология позволяет максимально быстро освободить используемые для выполнения запроса ресурсы SQL сервера и сушественно сократить сетевой трафик.
Использование MEMORY-файла позволяет сократить количество ключей и индексов в файле БД до минимума. Например, если для построения редко используемого отчета необходим специальный индекс, этот индекс м.б. описан только в MEMORY-файле, а в дисковом файле его может не быть. Таким способом можно уменьшить ресурсоемкость БД и повысить скорость выполнения операций редактирования таблиц.
Вы можете не только сократить количество ключей и индексов, но и избавиться от необходимости конвертирования БД в тех случаях, когда при развитии системы потребуется добавить новый индекс. Просто добавьте его в MEMORY-файле.
Вы можете строить рабочий "файл" собирая данные из нескольких источников, причем такими источниками м.б. не только физические файлы различных форматов. Например, часть конфигурационных данных Вы можете загрузить с сервера компании, а часть из локального файла, в котором хранятся специфические для лично Ваших функций данные.
В некоторых случаях использование MEMORY-файла позволяет имитировать функции VIEW SQL-сервера и изолировать логическую структуру данных от их физического представления. Например на этом можно построить разграничение прав доступа для файл-серверных ISAM БД. Причем, Вы можете полностью разделить вопросы проектирования бизнес логики и системы разграничения доступа.
Конечно, все эти задачи м.б. решены и с помощью обычных файловых драйверов. Но попробуйте, и Вы сразу оцените тот комфорт, в частности и из-за быстродействия, который предоставляет MEMORY-драйвер.
Знаете ли Вы, что абстракция через спецификацию - это прием программирования, позволяющий абстрагироваться от процесса вычислений описанных в теле процедуры, до уровня знания того, что данная процедура делает. Это достигается путем задания спецификации, описывающей эффект ее работы, после чего смысл обращения к данной процедуре становится ясным через анализ этой спецификации, а не самого тела процедуры. Мы пользуемся абстракцией через спецификацию всякий раз, когда связываем с процедурой некий комментарий, достаточно информативный для того, чтобы иметь возможность работать без анализа тела процедуры. Абстракция через спецификацию позволяет абстрагироваться от процесса вычислений описанных в теле процедуры, до уровня знания того, что данная процедура делает. Это достигается путем задания спецификации, описывающей эффект ее работы, после чего смысл обращения к данной процедуре становится ясным через анализ этой спецификации, а не самого тела процедуры. Мы пользуемся абстракцией через спецификацию всякий раз, когда связываем с процедурой некий комментарий, достаточно информативный для того, чтобы иметь возможность работать без анализа тела процедуры.