Delphi SQLite Wrapper с поддержкой статического связывания и шифрования
Мне нужна оболочка для SQLite, которая поддерживает статическое связывание и имеет хотя бы некоторую базовую поддержку шифрования (также желательно бесплатную)
Подводя итог, что я нашел до сих пор
ZeosLib - поддерживает шифрование. Не поддерживает статические ссылки.
AduCom - Сайт в основном не работает
AnyDAC - Не можете найти ссылку на цену или покупку для AnyDAC, так как он был куплен Embarcadero и обращен к FireDAC?
LiteDAC - обеспечивает статическое связывание. Standard Edition (~$130) не обеспечивает шифрование. Профессиональная версия (~ 200 долларов)
DISQLite3 - поддерживает статическое связывание и шифрование. Бесплатно для личного использования (с ограниченными функциями). Профессиональный (~150 евро)
Synopse mORMot - поддерживает статическое связывание. Не уверен насчет шифрования. Но я не могу разобраться в этом. ORM, SOA, UI, PDF, SQLite объединены в одну огромную структуру. Теперь я понятия не имею, как использовать только часть SQLite со статическим связыванием. Кажется, есть какое-то объяснение вокруг этого https://stackru.com/a/4971398/605027 но я не уверен, применимо ли оно до сих пор.
Лучшая оболочка, которую я нашел, - это SQLite3-Delphi-FPC. Очень минималистичный и простой в использовании. В идеале я хотел бы продолжить использовать ту же оболочку со статическими возможностями связывания Synopse и некоторого базового шифрования. Любые указатели на то, как этого можно достичь?
PS Я не хочу встраивать sqlite3.dll в ресурсы и загружать его динамически во время выполнения.
NB: Есть много вопросов и, следовательно, много путаницы вокруг этой темы. Поэтому я почувствовал необходимость опубликовать новый вопрос
3 ответа
Я использую Synopse mORMot со всеми моими последними проектами. Это бесплатно и с открытым исходным кодом, имеет хорошую поддержку автора на форуме. Поддерживает статическое связывание SQLite DLL и шифрование AES. Кроме того, вы можете использовать его на сервере / клиентском приложении по протоколу HTTP. Да, фреймворк очень большой и имеет много функций, но вам не нужно использовать их все. Я использую только небольшую часть в моих приложениях без каких-либо проблем. Может быть, это немного сложно начать (я не эксперт Delphi), но после этого ваши возможности безграничны.
Больше нет необходимости использовать сторонние оболочки для SQLite.
В Delphi XE3 Embarcadero добавил прямую поддержку SQLite с использованием каркасов dbExpress и FireDAC. Затем в Delphi XE5 они улучшили это и добавили всестороннюю поддержку SQLite через библиотеку FireDAC, которая включает даже "умное" распознавание типов данных.
FireDAC - теперь рекомендуемая библиотека доступа к базе данных для Delphi, заменяющая dbExpress и другие.
В последнем разделе статьи на Embarcadero docwiki: Использование SQLite с FireDAC показано, как использовать классы обёртывания API SQLite FireDAC, которые используются драйвером FireDAC SQLite, если вам нужно получить максимальную производительность доступа к данным SQLite.
Однажды я написал простую оболочку sqlite3.dll, потому что не нашел того, что мне нужно в существующих решениях: TSQLite.
Я прочитал здесь, что вы можете скомпилировать выделенный sqlite3.dll с шифрованием, и / или (?) Необходимо использовать sqlite3_activate_see
а также sqlite3_key_v2
но я не написал их в моей оболочке (вероятно, потому что это заставило мою оболочку завершиться с ошибкой по умолчанию sqlite3.dll). Если это то, что вам нужно, перевод с sqlite3.h не так сложен, и текущий SQLite.pas содержит множество примеров.