I am trying to make simple demo of sqlite in ionic + angular js project .I am inserting the data in database .But my error function call first then success why ? Follow the steps 1
here is my code http://codepen.io/anon/pen/ZGYKvE
app.factory('sqlservice',function($q){
var db;
var task='';
var deleteTask;
function createDB(){
try{
db=window.openDatabase("ATMSDB","1.0", "ATMSDB", 10*1024*1024);
db.transaction(function(tx){
tx.executeSql('CREATE TABLE "Cases" ("ID" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , "CaseName" VARCHAR NOT NULL )');
})
}catch (err) {
alert(err);
}
}
function insertDataOnDataBase(testCaseName){
return promiseQuerry("INSERT INTO Cases (CaseName) VALUES ('"+testCaseName+"')",defaultResultHandler,defaultErrorHandler)
}
function promiseQuerry(query,success,error){
var defferrd =$q.defer();
db.transaction(function(tx){
tx.executeSql(query,[],success(defferrd),error(defferrd));
})
return defferrd.promise;
}
function defaultResultHandler(defferrd){
return function(tx,result){
alert("success")
var len=result.rows.length;
var output_results = [];
for (var i=0; i<len; i++){
var t = {'ID':results.rows.item(i).ID,'CaseName':results.rows.item(i).CaseName};
output_results.push(t);
}
defferrd.resolve(output_results);
}
}
function defaultErrorHandler(defferrd){
alert("error")
return function(tx, results) {
var len = 0;
var output_results = '';
defferrd.resolve(output_results);
}
}
return{
setup: function() {
return createDB();
},
insertData:function(testCaseName){
return insertDataOnDataBase(testCaseName);
}
}
})
Secondly :
I am able to insert data on data base but I am getting two column of ID why in table ?