2

Я пытаюсь использовать плагин SQLite для PhoneGap для Windows Phone 8. Я нашел 2 или 3 разных плагина (возможно, все они основаны на одной базе), и все дают мне ошибка при выполнении заявки. Плагин, который я использую, находится здесь: https://github.com/marcucio/Cordova-WP-SqlitePluginSQLitePlugin Phonegap crashing для Windows Phone 8

Я включаю также dll. Я использую PhoneGap 3.3.

Когда я запускаю приложение, плагин загружается (кажется, правильно загружается), и некоторые операции выполняются правильно (некоторые CREATE и некоторые INSERT выполняются), но в данный момент Visual Studio дает мне эту ошибку бесконечно :

An exception of type 'System.Security.SecurityException' occurred in mscorlib.ni.dll and wasn't handled before a managed/native boundary 
An exception of type 'System.Security.SecurityException' occurred in mscorlib.ni.dll and wasn't handled before a managed/native boundary 
A first chance exception of type 'System.IO.IsolatedStorage.IsolatedStorageException' occurred in mscorlib.ni.dll 

Я пробовал другие подобные плагины, и ошибка все еще появляется.

Другие потоки в stackoverflow, связанные с этой проблемой, не помогли решить эту проблему. Приложение всегда выходит из строя в операции IsolStorage.

У каждой проблемы была такая же проблема и могла бы ее решить? Если я не выполняю операцию INSERT, плагин не сбой.

спасибо.

ответ

1

У меня была такая же проблема, используя Community.CsharpSqlite.WinPhone, возможно, у нас такая же проблема.

Это произошло, когда я сделал INSERT OR REPLACE или INSERT OR IGNORE со столом, основным ключом которого был ТЕКСТ, и было ограничение NOT NULL. Если первичный ключ INTEGER и AUTOINCREMENT, он работает нормально.

Например:

CREATE TABLE table1 (
    tableid TEXT NOT NULL, 
    value TEXT NOT NULL, 
    PRIMARY KEY(tableid) 
); 

INSERT or REPLACE INTO table1 (tableid, value) VALUES ("id1","test"); 

Если столбец ID имеет NOT NULL ограничение, SQLite возвращает System.Security.SecurityException. Попробуйте удалить это ограничение:

CREATE TABLE table1 (
    tableid TEXT, 
    value TEXT NOT NULL, 
    PRIMARY KEY(tableid) 
); 

Это ошибка, в других платформ (Android, IOS, и т.д.), таблица может иметь NOT NULL ограничение и она отлично работает.

Смежные вопросы