Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Проблемы с FireDAC и SQLite 3.42 в RAD Studio 12.3: доступные решения для шифрования

Delphi , Базы данных , ODBC

 

Введение

В последних версиях RAD Studio (начиная с 12.0) пользователи столкнулись с проблемой, связанной с работой FireDAC и SQLite 3.42, особенно в контексте шифрования данных. Как отметил пользователь FT_Uhu, в версии 12.3 возникают ошибки доступа при использовании FireDAC Encryption (FDE) с SQLite 3.31.1, что ранее работало корректно.

Анализ проблемы

Основная причина проблемы заключается в изменениях в SQLite, начиная с версии 3.42.0:

  1. SQLite 3.42.0 и выше удалили механизм шифрования, который использовался FireDAC
  2. В RAD Studio 12.0 была добавлена поддержка SQLite 3.42, но с сохранением совместимости с 3.31.1
  3. В версии 12.3 появились дополнительные сложности при попытке использовать старый механизм шифрования

Доступные решения

1. Использование SQLite без шифрования

Самый простой вариант - отказаться от шифрования, если это допустимо для вашего проекта:

// Простое подключение к SQLite без шифрования
FDConnection1.Params.Values['DriverID'] := 'SQLite';
FDConnection1.Params.Values['Database'] := 'C:\data\mydatabase.db';
FDConnection1.Connected := True;

2. Покупка SQLite EE (Enterprise Edition)

Коммерческая версия SQLite с нативной поддержкой шифрования:

// Подключение к SQLite EE с шифрованием
FDConnection1.Params.Values['DriverID'] := 'SQLite';
FDConnection1.Params.Values['Database'] := 'C:\data\mydatabase.db';
FDConnection1.Params.Values['Encrypt'] := 'aes-256-cbc';
FDConnection1.Params.Values['Password'] := 'mysecret';
FDConnection1.Connected := True;

3. Возврат к SQLite 3.31.1

Как предложил FT_Uhu, можно продолжить использовать старую версию SQLite:

// Явное указание старой версии SQLite
FDConnection1.Params.Values['DriverID'] := 'SQLite';
FDConnection1.Params.Values['Database'] := 'C:\data\mydatabase.db';
FDConnection1.Params.Values['SQLiteAdvanced'] := 'Legacy=3.31.1';
FDConnection1.Connected := True;

Решение проблемы с Access Violation

Как обнаружил FT_Uhu, проблема в версии 12.3 часто связана с автоматическим подключением модуля FireDAC.Phys.SQLiteWrapper.Stat через дизайнер форм. Решение:

  1. Удалить все компоненты FireDAC с формы
  2. Создавать подключение и запросы в коде:
procedure TForm1.FormCreate(Sender: TObject);
begin
  FDConnection1 := TFDConnection.Create(nil);
  FDQuery1 := TFDQuery.Create(nil);
  try
    FDConnection1.Params.Values['DriverID'] := 'SQLite';
    FDConnection1.Params.Values['Database'] := 'C:\data\mydatabase.db';
    FDConnection1.Connected := True;
    FDQuery1.Connection := FDConnection1;
  except
    on E: Exception do
      ShowMessage('Error: ' + E.Message);
  end;
end;

Альтернативное решение от Patrick PREMARTIN

Для поддержки кроссплатформенности можно использовать условную компиляцию:

uses
  {$IF CompilerVersion >= 36.0}  // Delphi 12 Athens
  FireDAC.Phys.SQLiteWrapper.FDEStat,
  {$ELSEIF CompilerVersion >= 34.0}  // Delphi 10.4 Sydney
  FireDAC.Phys.SQLiteWrapper.Stat,
  {$ELSE}
  FireDAC.Phys.SQLiteWrapper,
  {$IFEND}
  // другие модули

Рекомендации по работе с FireDAC и SQLite

  1. Миграция данных: При переходе на новую версию SQLite создайте резервную копию данных
  2. Тестирование: Всегда тестируйте работу с шифрованием на тестовой базе
  3. Обновления: Следите за обновлениями FireDAC в новых версиях RAD Studio
  4. Альтернативы: Рассмотрите другие механизмы шифрования, такие как SQLCipher

Заключение

Проблема с FireDAC и SQLite 3.42 в RAD Studio 12.3 имеет несколько решений, в зависимости от требований вашего проекта. Наиболее универсальным подходом является создание компонентов FireDAC в коде, а не через дизайнер форм, что позволяет избежать автоматического подключения проблемных модулей. Для проектов, требующих шифрования, стоит рассмотреть коммерческую версию SQLite или альтернативные механизмы защиты данных.

Создано по материалам из источника по ссылке.

Проблемы с FireDAC и SQLite 3.42 в RAD Studio 12.3, связанные с шифрованием данных, и доступные решения для их устранения.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: ODBC ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-04 06:48:17/0.005669116973877/0