2016-11-24 4 views
-1

In meinem Bemühen, mehr über WebSQL zu lernen, bin ich in meinem JavaScript-Code über eine "Errorundifined" gelaufen. Ich habe den Code getestet und kann den Fehler nicht finden. Die Datenbank "To Do" wird jedoch erstellt, nicht jedoch die Tabelle "Tasks". Kann jemand helfen?Erfassen von Fehlern von WebSQL-Befehlen

<!doctype html> 
<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <title>Untitled Document</title> 
    <script type="text/javascript" src="../js/jquery.js"></script> 
    <script> 
     var db = null; 
     var db = openDatabase('To Do', '1.0', 'To Do', 2 * 1024 * 1024); 
     db.transaction(function(tx) { 
      tx.executeSql('CREATE TABLE IF NOT EXISTS tasks (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, create unique, name, description, due DATETIME)'); 
}); 

     $('document').ready(function() { 
      var db = openDatabase('To Do', '1.0', 'To Do', 2 * 1024 * 1024);   
      db.transaction(function(tx) { 
       tx.executeSql('SELECT * FROM tasks', [], querySuccess, errorCB); 
    }); 

     function querySuccess(tx, results) { 
      var len = results.rows.length; 
       if(len > 0) { 

      }else{ 
       alert("You Have No Tasks"); 

       } 
     } 

     function errorCB(err) { 
      alert("Error" + err.code); 
     } 

    }); 

    </script> 
    </head> 

    <body> 

     <h1>Hello World!</h1> 

    </body> 
</html> 
+0

Bitte geben Sie uns mit Code. –

+0

Ich versuche, eine relationale html5-Datenbank für eine Offline-Website nur für den internen Gebrauch zu erstellen, ohne einen Backend-Server zu verwenden. Das ist alles Code, den ich bisher habe. Ich kann den "Errorundefind" -Fehler im Javascript nicht überwinden. –

Antwort

0

Das Hauptproblem Sie zu debuggen Ihr Programm laufen lassen ist, dass die Unterschrift des Fehler-Callback nicht korrekt ist, übergibt es zwei Parameter, die Transaktion und dann den Fehler (ähnlich wie der Erfolg Rückruf geht die Transaktion und die Ergebnisse).

, wenn Sie Ihre errorCB zu

function errorCB(tx,err) { 
    console.log(err); 
} 

Sie den Fehler sehen wird sich ändern ist:

SQLError {code: 5, Meldung: „nicht-Anweisung (1 keine solche Tabelle vorbereiten konnte: Aufgaben) "}

anschauliches Beispiel: https://jsfiddle.net/toscqrzz/

Und wenn Sie den gleichen Rückruf an die ursprünglichen CREATE TABLE bieten werden Sie

SQLError siehe {code: 5, Meldung: "Anweisung nicht vorbereiten konnte (1 in der Nähe von "create": Syntaxfehler)"}

Live-Beispiel: https://jsfiddle.net/ykhL9va6/