Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
Новости

Новый драйвер 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


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

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

IN THE ARTICLES