Оптимальные способы хранения полупостоянных данных в приложениях на Delphi без установщикаDelphi , Базы данных , База данныхВ статье будет рассмотрен вопрос о хранении полупостоянных данных в приложениях на Delphi, которые не используют установщик. Это может быть актуально, например, для приложений, запускаемых с CD или из других только для чтения источников. Важно найти место на клиентском компьютере, где данные будут доступны для всех пользователей и приложения, а также где они могут быть удалены при необходимости очистки, но при этом сохранять свою целостность на протяжении длительного времени. В качестве примера можно рассматривать данные, которые можно считать кэшем. Оригинальный заголовокГде хранить полупостоянные базы данных? Описание проблемыРазработчики часто сталкиваются с задачей хранения данных в приложениях, которые не имеют установщика. Это может быть связано с необходимостью хранения файлов в структурированном формате в определенной директории на клиентском компьютере. Однако, так как приложение может запускаться из источника, который является только для чтения (например, с CD), использовать директорию самого исполняемого файла не представляется возможным. Таким образом, задача состоит в том, чтобы найти удобный и безопасный способ сохранения данных, который будет доступен на протяжении длительного времени, но может быть удален по необходимости. Особенно важно, что данные должны быть доступны для всех сессий Windows и для приложения, работающего как сервис на сессии 0. Описание решенияВ документации MSDN перечислены различные места на диске, где можно хранить файлы приложения (CSIDL), включая CSIDL_COMMON_APPDATA, который предназначен для хранения данных, специфичных для каждого приложения для всех пользователей системы. Это идеально подходит для нашего случая. Для использования этого места для хранения данных можно использовать функцию SHGetFolderPath() для получения физического пути. В MSDN указано, что это место обычно располагается по пути C:\Documents and Settings\All Users\Application Data и используется для хранения данных, которые не специфичны для каждого пользователя, например, словарей для проверки орфографии, баз данных клипартов или журналов. Создаем в этой директории дополнительные поддиректории: сначала для издателя (вашей компании), затем для самого приложения. Внутри этого приложения каталога располагаем вашу базу данных. Обратите внимание: Не используйте CSIDL_COMMON_DOCUMENTS для хранения временных баз данных, так как файлы в этой директории могут быть включены в систему "roaming" (периодически копируемую на другие компьютеры), что не подходит для временных файлов базы данных. Также, обратите внимание: для Windows Vista и последующих версий следует использовать функцию SHGetKnownFolderPath(), а для перекрестной совместимости, включая Windows XP, рекомендуется использовать SHGetFolderPath(). Пример кода на Object Pascal (Delphi)
Альтернативный ответКак временное решение, можно рассмотреть использование директории временных файлов Windows, но это не гарантирует сохранности данных после перезагрузки системы, и данные могут быть автоматически удалены после закрытия приложения. Кроме того, доступ к временным файлам ограничен текущим пользователем, что может быть неудобно для многопользовательских систем. ЗаключениеДля хранения полупостоянных данных в приложениях на Delphi без установщика оптимальным вариантом является использование директории общего приложения (CSIDL_COMMON_APPDATA). Это место позволяет сохранить данные, доступные для всех пользователей и приложений, и при этом обеспечить их безопасность и возможность контролируемого удаления в случае необходимости очистки. Проблема заключается в поиске безопасного и удобного места для хранения полупостоянных данных в приложениях на Delphi, не использующих установщик, доступных для всех пользователей и приложений, а также поддающихся удалению при необходимости, но сохраняющ Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: База данных ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |