jeudi 19 février 2015

Processing SQL: undefined using ionic with sqlite

I was looking for some example of using sqlite in ionic applications, and I've found this one, but it is not working properly, in my console I see the following error:


Error processing SQL: undefined


I don't know what is wrong, what am I missing here?



angular.module('starter.database', [])

.factory('DbAccess', function ($q) {
var DbAccess = {};

var db = window.openDatabase("rm", "1.0", "rm", 200000);

DbAccess.ClearDownDB = function(tx) {
// Drop Tables
//console.log("Dropping Tables");

tx.executeSql('DROP TABLE IF EXISTS TABLE1');



};



DbAccess.PopulateDB = function(tx) {

tx.executeSql('CREATE TABLE IF NOT EXISTS TABLE1 (id unique, data)');
tx.executeSql('INSERT INTO TABLE1 (id, data) VALUES (1, "First row")');
tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")');
};

DbAccess.SingleResultHandler = function(deferred) {
return function(tx, results) {
var len = results.rows.length;
var output_results = [];

for (var i = 0; i < len; i++) {
output_results.push(results.rows.item(i));
}

deferred.resolve(output_results[0]);

};
};

DbAccess.MultipleResultHandler = function(deferred) {
return function(tx, results) {
var len = results.rows.length;
var output_results = [];

for (var i = 0; i < len; i++) {
output_results.push(results.rows.item(i));
}

deferred.resolve(output_results);

};
};

DbAccess.DefaultErrorHandler = function(err) {
console.log("Error processing SQL: " + err.code);
};

DbAccess.promisedQuery = function(query, successCB, errorCB) {
//console.log(query);
var deferred = $q.defer();
db.transaction(function(tx) {
tx.executeSql(query, [], successCB(deferred), errorCB);
}, errorCB);
return deferred.promise;
};

DbAccess.InitDB= function() {
db.transaction(DbAccess.PopulateDB, DbAccess.DefaultErrorHandler, DbAccess.MultipleResultHandler);
};

DbAccess.ResetDB= function() {
db.transaction(DbAccess.ClearDownDB, DbAccess.DefaultErrorHandler, DbAccess.MultipleResultHandler);
};

return DbAccess;

})

.factory('DBQueries', function(DbAccess) {
var DBQueries = {};


DBQueries.GaetAllTABLE1 = function(TABLE1) {
var query = 'Select * FROM TABLE1';
return DbAccess.promisedQuery(query, DbAccess.SingleResultHandler, DbAccess.DefaultErrorHandler);
};


return DBQueries;

});

Aucun commentaire:

Enregistrer un commentaire