Плагин Cordova Sqlite не работает над запросами UPDATE или DELETE - PullRequest
0 голосов
/ 24 марта 2020

У меня есть приложение, которое использует предварительно заполненную базу данных sqlite (сначала я попытался заполнить ее через программу, но из-за этой же проблемы я не смог ее заполнить). Все в порядке (открытие и SELECT-запросы), пока я не попытаюсь изменить (с помощью запросов UPDATE или DELETE) данные. Это просто не работает и ничего не делает. Нет вызова функций обратного вызова, нет ничего.

Я пробовал на Android и iOS, с одинаковыми результатами.

Это мой код: открытие БД :

   function onDeviceReady() {
       db = window.sqlitePlugin.openDatabase({
       name: "mis_comentarios.sqlite",
       location: 1
    });

Следующая функция работает нормально:

function pinta_lista_notas() {
    db.transaction(function(tx){
        my_reference=document.form2.ref_ev.value
        my_query='select * from t_notes where ref_ev="'+my_reference+'"'
        tx.executeSql(my_query, function(err){
            alert('Error: '+err.code)
        }, function(tx, resultado) {
                my_output=''
                var longitud = resultado.rows.length;
                for (var i=0; i<longitud; i++){
                    my_output +="<div >"+resultado.rows.item(i).texto+"</div>";
                    }
                    $('#my_coment').html(my_output)
        });
        }, function(err){
            alert('error de algun tipo al listar '+err.code)
        });
    }

Но не эти другие:

function del_item(num_com) {
    db.transaction(function(tx){
      var query = 'DELETE FROM t_notes WHERE clv_note = "'+num_com+'"';
            tx.executeSql(query, [], function(tx, resultado) {
            alert ('Item deleted')
                }, errorCB);
        }, errorCB);
}

function edit_item(num_com) {
    db.transaction(function(tx){
        var query = 'UPDATE t_comentarios SET texto = ? WHERE clv_coment = ?';
        tx.executeSql(query, [nuevo_com, num_com], function(tx, resultado) {
        alert('Item updated')
            }, errorCB);
    }, errorCB);
}

... ни эта другая версия:

function del_item(num_com) {
    db.transaction(function(tx){
      var query = 'DELETE FROM t_notes WHERE clv_note = ? ';
            tx.executeSql(query, [num_com], function(tx, resultado) {
            alert ('Item deleted')
                }, errorCB);
        }, errorCB);
}

и никогда не вызываемая функция для ошибок:

function errorCB(err) {
   alert("SQL error: "+err.code);
}

Весь этот код работал нормально в другом приложении, которое я делал несколько лет go, и он продолжает нормально работать внутри этого приложения ( это не было обновлено наряду с новыми версиями Xcode, Android Studio ...).

Я также попробовал решения, упомянутые здесь: Плагины Cordova не работают после обновления Xcode и Cordova ( OSX) и в любом другом месте с похожими вопросами, но ничего не работает.

Заранее благодарен за любую помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...