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