mardi 15 mars 2016

Display SELECT data from SQLite Table in Javascript

I am trying to SELECT all the data in the WORKOUTS table (only one row), then display the output from the id column in an alert box.

I am having difficulty getting the result of the SQL query into Javascript.

Could anyone let me know where I have gone wrong?

////////////////////////////////

// SQL query function
function queryRunner(input, callback) {

    // Needs to be in .transaction to work
    database.transaction(
        function( transaction ){

            // SQL Query
            transaction.executeSql(input);

        },function(err){

            console.log('errorCB: ' + err.code + '; Message: ' + err.message);

        },function( transaction, results ){

            console.log('queryRunner success!');

            // Make callback optional
            // Make sure only processes if functions included
            // i.e. ignore strings
            if(callback && typeof(callback) === 'function') { callback(results); 
            }

        }
    ); // end database.transaction

} // End queryRunner


////////////////////////////////


    var databaseOptions = {
        fileName: "sqlite_WAtest",
        version: "1.0",
        displayName: "SQLite WA Test",
        maxSize: 1024
    }; // End databaseOptions



    var database = openDatabase(
        databaseOptions.fileName,
        databaseOptions.version,
        databaseOptions.displayName,
        databaseOptions.maxSize
    ); // End database

    queryRunner('DROP TABLE WORKOUTS');

    queryRunner('CREATE TABLE IF NOT EXISTS WORKOUTS (id INTEGER PRIMARY KEY AUTOINCREMENT, WOdate TEXT, WOtype TEXT);');

    queryRunner('INSERT INTO WORKOUTS (WOdate, WOtype) VALUES ("Test 1","Test 2")');

    queryRunner('INSERT INTO WORKOUTS (WOdate, WOtype) VALUES ("Test 3","Test 4")');

    queryRunner('SELECT * FROM WORKOUTS', function(){

        alert('hello');                 // Triggers fine
        alert(results.rows.item[0]);    // cannot find variable

    });

Aucun commentaire:

Enregistrer un commentaire