У меня есть старое приложение VB.NET 2005 года, которое требует обновления Sqlite для функций JSON.
Я скачал и установил "sqlite-netFx20-setup-bundle-x86-2005-1.0.109.0.exe". Я удалил ссылку на старую версию и снова ссылался на эту новую версию. Я скомпилировал прогу программы - все вроде нормально.
Используя онлайн-пример для JSON, поместите следующий код за TestButton: -
jsondb.SQL = "CREATE TABLE user (name, phone)"
ExecuteSQLiteCommand(jsondb)
jsondb.SQL = "INSERT INTO user (name, phone) values('oz', json('{""""cell"""":""""+491765"""", """"home"""":""""+498973""""}'))"
ExecuteSQLiteCommand(jsondb)
Когда выполняется «INSERT», я получаю «функция json not found».
После дополнительных исследований я обнаружил, что мне нужно включить расширения json с помощью: -
mySQLdb.Connection.Open()
mySQLdb.Connection.EnableExtensions(True)
mySQLdb.Connection.LoadExtension("SQLite.Interop.dll", "sqlite3_json_init")
Изначально произошла ошибка .LoadExtension, поскольку модуль "SQLite.Interop.dll" не был найден.
Я нашел копию этого модуля в "sqlite-netFx20-binary-Win32-2005-1.0.109.0.zip", скопировал ее в каталог установки Sqlite и изменил метод .LoadExension на: -
mySQLdb.Connection.LoadExtension("C:\Program Files\System.Data.SQLite\2005\bin\SQLite.Interop.dll", "sqlite3_json_init")
Теперь метод .LoadExension вызывает исключение «System.AccessViolationException».
Кто-нибудь знает, как я могу решить эту проблему?
Заранее спасибо.