MarkNopfler Ответов: 0

Ошибка: "транзакция null".


Случае анализа
index.js

var db = null;
var db2 = null;
var db3 = null;
var dbUser = null;
var dbName = "estudos.db";

var app = {
// Application Constructor
initialize: function() {
document.addEventListener('deviceready', this.onDeviceReady.bind(this), false);
},

// deviceready Event Handler
//
// Bind any cordova events here. Common events are:
// 'pause', 'resume', etc.
onDeviceReady: function() {
    this.receivedEvent('deviceready');
},

// Update DOM on a Received Event
receivedEvent: function(id) {
    var parentElement = document.getElementById(id);
_**// Line 43--->> var listeningElement = parentElement.querySelector('.listening');**_
    var receivedElement = parentElement.querySelector('.received');

    listeningElement.setAttribute('style', 'display:none;');
    receivedElement.setAttribute('style', 'display:block;');


    // OPERACOES BD - inicio

    //banco de dados local - aceite de termos e outras coisas
    dbUser = window.sqlitePlugin.openDatabase({name: 'user.db', location: 'default'});
    dbUser.transaction(function(tx) {
        tx.executeSql('CREATE TABLE IF NOT EXISTS Users (flg_aceite, flg_valid_bd)');
    }, function(error) {
        alert('Transaction ERROR: ' + error.message);
    }, function() {
        console.log('Database OK');
    });

    //copia do banco de dados de estudos
    window.plugins.sqlDB.copy(dbName, 0, copysuccess, copyerror);
    // OPERACOES BD - fim
}
};

app.initialize();

//---------------------------------------------------------------

function copysuccess()
{
//primeira versão deste banco de dados. o comando anterior.
//provavelmente realizou a cópia, abro o BD.
db = window.sqlitePlugin.openDatabase({name: dbName});
//preciso verificar se existem versões anteriores deste BD. Deleto por precaucao
dropTable();
fts_table();
}

function copyerror(e)
{
//esta versao do banco de dados ja existe.
//abro o BD
db = window.sqlitePlugin.openDatabase({name: dbName});
//db3 = window.sqlitePlugin.openDatabase({name: "vtestudos"});
//alert("copyerror" + JSON.stringify(e));
}

//---------------------------------------------------------------

function fts_table(){
db.transaction(function(tx) {
tx.executeSql('CREATE VIRTUAL TABLE vtestudos USING FTS3(titulo, texto, id_titulo)', [], function(tx,res){
//alert("nao deu erro");
//db = window.sqlitePlugin.openDatabase({name: "vtestudos"});
//alert("opened");

      db.transaction(function(tx) {
      tx.executeSql('INSERT INTO vtestudos(titulo, texto, id_titulo) SELECT titulo, texto, id_titulo FROM estudos', [], function(tx,res){
          //db3 = window.sqlitePlugin.openDatabase({name: "vtestudos"});
           console.log('insert ok');
      });
      }, function(err){
          alert(err.message);
      });

});
}, function(err){
    alert(err.message);
});


Что я уже пробовал:

Я попытался изменить свою базу данных, изменив свою cordova.js и даже мой index.js замена индекса для вызова my otherPAGE.js

CHill60

Совет: избавьтесь от ссылки и опубликуйте код, который дает проблему, и укажите ошибку в вашем вопросе. Ваш пост оказался в очереди модерации спама (из-за ссылки), и я чуть не сообщил о нем как о спаме, потому что это выглядело как вождение сайта.

MarkNopfler

Спасибо за совет. Я вижу. Я обновлю вопрос!

ZurdoDev

Я не понимаю, о чем вы спрашиваете.

MarkNopfler

Что вы не поняли из моего вопроса?

MarkNopfler

Чего ты не понял? У меня нет на это времени.

ZurdoDev

Что означает "обнаружить недоступную базу данных"?

ZurdoDev

Почему бы и нет otherPage.js получите ценность?

MarkNopfler

Это означает, что мой код(otherPage.js) не получить значение из базы данных, но index.js код получает текущее значение из базы данных. Я не знаю, есть ли у вас уже этот тип ошибки с помощью cordova или phonegap.

ZurdoDev

Какая ошибка? Я не вижу никакой ошибки.

MarkNopfler

https://github.com/GustavoDesc/PhonegapProjectAllFiles/issues/2 -вот. Вы можете посмотреть, пожалуйста?

ZurdoDev

Нажмите кнопку улучшить вопрос и поместите ошибку в вопрос здесь. Не ждите, что люди будут гоняться за вами, пытаясь помочь. Дайте нам все, что нам нужно.

И какая строка кода вызывает ошибку? Что-то пусто. Просто исправь это.

MarkNopfler

Справа .. Я обновлю, только на минутку.

MarkNopfler

_ * * / / Строка 43 - - - >> var listeningElement = parentElement.querySelector('.слушать);**_

ZurdoDev

Тогда ошибка означает, что parentElement равен null. Вам нужно отладить свой код и выяснить, почему.

MarkNopfler

Но после кода отладчика Android Studio показывает мне это сообщение об ошибке в строке 43.
Я хочу только знать, если код ошибки вызван тем, что страница не распознала базу данных.В otherPage.js оставайтесь без распознанной базы данных. Я не знаю, есть ли у вас опыт работы с cordova или phonegap, потому что у многих людей уже есть такая же проблема.

ZurdoDev

Я не использовал cordova или phonegap, но я отлаживал код в течение многих лет, так что это то, что я бы сделал.

MarkNopfler

на изображении есть сообщение об ошибке, которое говорит: транзакция null...

0 Ответов