2016-03-25 3 views
1

Может кто-нибудь, пожалуйста, объясните мне сообщение об ошибке, которое возвращает мое приложение ionic/cordova при записи в уже открытую базу данных SQLite?Код ошибки плагина Кордовы SQLite

Чтение из него работает отлично, но при записи на не работает ...

[Log] {"db":{"openargs":{"name":"mydb.db","dblocation":"docs"},"dbname":"mydb.db"},"txlock":true,"readOnly":false,"executes":[],"finalized":true} (console-via-logger.js, line 174) 

Это то, что SQLite выходы, прежде чем запускать транзакцию записи:

[Log] OPEN database: mydb.db (console-via-logger.js, line 174) 
[Log] new transaction is waiting for open operation (console-via-logger.js, line 174) 
[Log] DB opened: mydb.db (console-via-logger.js, line 174) 

Вот как я пишу it

myDB.transaction(function(transaction) { 
      var query = "UPDATE Data SET Values='"+dataJSON+"'"; 
//   console.log(query); 
      transaction.executeSql(query,[], 
      //On Success 
      function(tx, result) { 
//    console.log('UPDATE SUCCESSFULLY'); 
       deferred.resolve(true); 
      }, 
      //On Error 
      function(error){ 
//    console.log('Backing up data to DB failed'); 
       deferred.reject(error); 
      }); 
    }); 
+0

У меня такой же выпуск. Кажется, что он пытается делать транзакции до того, как база данных полностью открыта. – Tana

+0

В моем случае программа уже обработала успешное чтение в БД. Любая идея, что означает ошибка? –

+0

Это прочитано над той же таблицей, которую вы пытаетесь написать? – Tana

ответ

1

Попробуйте ввести код типа:.

function(name,email,phoneno){ 
var deferred = $q.defer(); 
posts = undefined; 
var query = "UPDATE Data SET Name=?, Email=?, Phone=?"; 
$cordovaSQLite.execute(dbconn, query, [name,email,phoneno]) 
.then(function(result) { 
posts = result; 
deferred.resolve(posts); 
}, function (error) { 
posts = error; 
deferred.reject(posts); 
}); 
posts = deferred.promise; 
return $q.when(posts);  
}