SQLite
 sql >> Base de données >  >> RDS >> SQLite

Uncaught TypeError ne peut pas appeler la méthode 'opendatabase' du plugin undefined-SQLite avec cordova 3.5

L'instruction dans votre code échouera si vous n'avez pas inclus le plugin sqlite dans votre projet.

var db = window.sqlitePlugin.openDatabase({name: "test.db"});

Vous devriez également attendre que l'événement deviceready soit déclenché avant d'utiliser les plugins cordova.
Vous pouvez utiliser window.openDatabase() qui crée une base de données sqlite et n'a pas besoin du plug-in sqlite.
Vous trouverez ci-dessous le code permettant d'utiliser l'appel openDatabase dans votre application.

si votre plugin sqlite fonctionne correctement, changez l'appel db en.

var db = window.sqlitePlugin.openDatabase({name: "test.db"});

code qui n'utilise pas le plugin sqlite.

// Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    //
    function onDeviceReady() {
        var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);
        db.transaction(populateDB, errorCB, successCB);
    }

    // Populate the database
    //
    function populateDB(tx) {
        tx.executeSql('DROP TABLE IF EXISTS DEMO');
        tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)');
        tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")');
        tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")');
    }

    // Transaction error callback
    //
    function errorCB(err) {
        alert("Error processing SQL: "+err);
    }

    // Transaction success callback
    //
    function successCB() {
        alert("success!");
    }

L'extrait de code ci-dessus est tiré de la documentation de l'API Cordova. Voir ici pour plus de détails. Même si la documentation est pour 3.0, elle devrait fonctionner pour 3.5