ZeosDB コンポーネントを使用して sqlite データベースにアクセスしています。暗号化されていないデータベースで正常に動作します。
暗号化されたデータベースで、ファイルが暗号化されているか、データベースではありません。パスワードを設定すればイーブン。
使用している DLL ファイルは間違っていますか? 公式ページの最後のdllを使用しています。デフォルトでは暗号化をサポートしていませんか?
SQLite3にはいくつかの暗号化スキームがあります。
それらの中で、あなたは持っています:
sqlite3.dll
、展開とサポートが容易になります-MS SQL、Oracleへの簡単な切り替えが特徴ですまたは、Delphi5からXE3までの同じソースコードを使用するOleDB/ ODBCで、高速です。ZeosDBSQLite3レベルはそれらのどれも処理しません。
SQlite3 APIドライバー(ユニットZPlainSqLiteDriver)には暗号化が含まれていません。したがって、変更する必要があります。または、暗号化APIをサポートする別のラッパーに切り替えます。
最近、同じ問題が発生しました(UniDacを使用)。公式の DLL は暗号化をサポートしていません。暗号化を含むライブラリがいくつかありますが、それらは交換可能ではありません。つまり、ある SQLite DLL で暗号化された DB は、他のディストリビューションでは復号化できません。あなたのケースも同じだと思います。
私の解決策は次のとおりです。
このように、DBMS は新しい DLL を使用して暗号化し、プログラムは同じバージョンの DLL を使用して暗号化を解除できます。
以下もご覧ください。
ノート: