Новости

Новый драйвер FireDAC для SQLite SEE

fire-dac-logo

Embarcadero сделал доступным новый драйвер FireDAC для базы данных SQLite Encryption Extension (SEE). Загрузка находится в GetIt, и вот некоторые подробности этого решения.


RAD Studio 11 Alexandria, как и предыдущие версии, поставляется с драйвером FireDAC для базы данных SQLite, предлагающим два разных подхода к доставке. Один из вариантов — статическое связывание, то есть компиляция SQLite в двоичный файл приложения путем связывания скомпилированного кода. Второй вариант — это динамическое связывание, то есть использование внешней DLL SQLite. Две альтернативы и их конфигурации для разных платформ подробно описаны по адресу:

https://docwiki.embarcadero.com/RADStudio/Sydney/en/Connect_to_SQLite_database_(FireDAC)

fire-dac-logo-6968836

Шифрование FireDAC SQLite

Версия драйвера FireDAC SQLite со статическим связыванием предлагает поддержку шифрования базы данных с использованием механизма перехвата базы данных (SQLITE_HAS_CODEC), который теперь был  удален  из последних версий SQLite командой разработчиков баз данных. По этой причине FireDAC по-прежнему поддерживает шифрование SQLite в последней версии SQLite с «функцией». Если вам нужна последняя версия SQLite и не требуется шифрование, вы можете использовать версию DLL.

В дальнейшем планируется отказаться от шифрования FireDAC SQLite или, по крайней мере, предоставить его в качестве устаревшего варианта и перейти на последнюю версию SQLite также для статически скомпилированной версии. Также обратите внимание, что если вы переходите от FireDAC SQLite Encryption к драйверу FireDAC SQLite Encryption Extension (SEE), вы получите другую реализацию шифрования: по этой причине файлы базы данных SQLite не будут совместимы.

Расширение шифрования SQLite (SEE)

Путь вперед с SQLite Encryption от Hwaci (компания, стоящая за SQLite) — это рекомендовать использование SQLite Encryption Extension (SEE), платной версии SQLite. Вы можете узнать больше об этой базе данных по этим ссылкам:

Учитывая, что некоторые клиенты запросили поддержку SQLite EE, Embarcadero создал специальный драйвер FireDAC. Обратите внимание, что в лицензионном соглашении указано, что вам следует использовать статическую привязку (но, поскольку я не юрист, см. Подробную информацию в лицензии, указанной выше). Никакая третья сторона, такая как Embarcadero, не имеет права распространять исходный код библиотеки или скомпилированный двоичный код. Таким образом, Embarcadero предоставляет разработчикам исходный код нового драйвера FireDAC, а также несколько сценариев на основе C ++ Builder для компиляции библиотеки. Вам нужно будет собрать и связать две части (код библиотеки и модуль Delphi) вместе в вашей системе разработки — и для этого может потребоваться владение полной RAD Studio, поскольку вам нужно скомпилировать код C ++ и Delphi.

Рассмотрите InterBase ToGo как альтернативу

Прежде чем я перейду к загрузке и практической стороне, обратите внимание, что, в зависимости от ваших целевых платформ и других требований, вы можете рассмотреть возможность использования  InterBase ToGo  и его поддержки шифрования базы данных в качестве альтернативы SQLite EE — ценовая модель немного отличается, что делает трудно сравнивать напрямую, но я уверен, что отдел продаж Embarcadero поможет вам разобраться.

Скачать драйвер GetIt

Как уже упоминалось, загрузка доступна в виде специального нового пакета GetIt для клиентов с активной подпиской на обновления:

firedac_sqliteee_getit-3955246

Embarcadero вскоре сделает загрузку доступной также на портале для клиентов. Ниже я прикрепил прочитанный мной этот пакет GetIt с дополнительной информацией.

Файл для чтения драйвера FireDAC SQLite SEE

Это полный текст файла readme в пакете:

Классы обертывания статического API FireDAC SQLite SEE, Copyright 2021 Embarcadero Technologies. Все права защищены.
Использование регулируется лицензионным соглашением RAD Studio 11, см. Https://www.embarcadero.com/products/rad-studio/rad-studio-eula

Расширение шифрования SQLite (SEE) является продуктом компании Hipp, Wyrick & Company, Inc. (Hwaci) и регулируется
лицензией, доступной по адресу https://www.hwaci.com/sw/sqlite/license-see.html

=== Статическая связь.
Это рекомендуемый способ использования SQLite SEE с вашим приложением. Используйте новый модуль FireDAC.Phys.SQLiteWrapper.SEEStat.pas.
Он обеспечивает статическую привязку sqlite3 SEE к приложению. Этот модуль предоставляется клиентам только как файл PAS, потому что
для создания DCU / etc нам нужен sqlite3.obj, на который распространяется лицензионное ограничение SQLite SEE.

Использование:
* Установите FDPhysSQLiteDriverLink.Linkage = slSEEStatic. Это автоматически добавит FireDAC.Phys.SQLiteWrapper.SEEStat в предложение «использует»
*… или включит FireDAC.Phys.SQLiteWrapper.SEEStat вместо FireDAC.Phys.SQLiteWrapper.Stat в предложение использует приложение
* Make FireDAC.Phys.SQLiteWrapper.SEEStat. pas, доступный компилятору
* Скомпилируйте sqlite3 SEE и создайте sqlite3_x86.obj / sqlite3_x64.obj. См. Раздел «Перекомпиляция SQLite SEE» ниже.
* Поместите sqlite3_x86.obj / sqlite3_x64.obj в папку с FireDAC.Phys.SQLiteWrapper.SEEStat.pas

=== Динамическое связывание.
Это подлежит ограничениям на распространение (см. Лицензию Hwaci)

Использование:
* Установить FDPhysSQLiteDriverLink.Linkage = slDynamic
* Установить FDPhysSQLiteDriverLink.SEEKey = ‘xxx’, где ‘xxx’ — это ключ активации SEE.
Подробнее см. В файле распространения SEE «wwwreadme.wiki», глава «Интерфейс 5.0 C»
* Предоставить sqlite3.dll ПОСМОТРЕТЬ версию и сделать ее доступной для приложения FireDAC

=== Что работает, а что нет.
Шифрование FireDAC SQLite (FSE) поддерживает функции, которые SQLite SEE не поддерживает:
* если указан неправильный пароль, FSE вернет «неправильный пароль», SEE всегда возвращает «файл не является базой данных. »
* FSE может возвращать текущий алгоритм шифрования, SEE не может
* список возможных значений параметра определения соединения FireDAC« Encrypt »имеет поддерживаемые FSE значения, а не SEE

Обратите внимание, что существующие базы данных, созданные с использованием шифрования FireDAC SQLite, несовместимы с базами данных SQLite SEE.
Когда вы создадите свое приложение, будет хорошо сначала получить отчеты среды FireDAC, чтобы быть уверенным, что используется «правильный SQLite».

=== Перекомпиляция SQLite SEE
Используйте предоставленный sqlite_compile.bat для создания sqlite3_x86.obj / sqlite3_x64.obj. Перед запуском sqlite_compile.bat обновите его и установите для этих переменных свои фактические значения:
* BDS — установочная папка RAD Studio
* SQLITE_SRC — путь к исходному файлу sqlite


Python GUI Development

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Leave a Reply

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

IN THE ARTICLES