Возникает ошибка при работе с SQLite3 через драйвер с поддержкой шифрования из Lazarus
Возникла проблема при работе с базой данных SQLite3 через драйвера System.Data.SQLite. Драйвер берётся из архивов типа sqlite-netFx20-binary-Win32-2005-1.0.112.0.zip. Архив распаковывается, файл SQLite.Interop.dll переименовывается в sqlite3.dll и помещается в корень проекта на Lazarus.
Всё работало, когда пользовался файлом из этого архива. То есть устанавливалось соединение с БД, записывались/считывались данные через SQL-запросы и т.д. Единственная проблема: не работает ограничение по ключам, то есть если при удалении записи должны удаляться все связанные записи из других таблиц (ограничение OnDelete = Cascade), то этого не происходило. При этом, если в той же базе данных это сделать через стороннюю программу SQLiteStudio (вер.3.2.1), то всё прекрасно работает.
Подумал, что всё дело в драйверах и начал скачивать актуальные на сегодняшний момент (например, sqlite-netFx20-binary-Win32-2005-1.0.114.0.zip). Но при установке любого другого драйвера вместо первоначального и запуске проекта (при запуске происходит первое обращение к БД) получаю ошибку вида:
[Debugger Exception Notification]
Project LineProject raised exception class 'ESQLDatabaseError' with message: TSQLite3Connection : file is not a database
At address 646458
[Ignore this exception type]
[Break] [Continue]
Я перебрал все драйверы (прекомпилированные бинарники для всех версий Net фреймворков для Win x32), но ни один не заработал. При этом, старый драйвер работает, как и работал. В чём может быть причина?
Конфигурация запуска: Windows 10 (x64), Lazarus 2.0.8 (x32), драйвер для БД также x32.