paulocaldeira17 / angular-websql

Angular WebSql Service - Query less
MIT License
81 stars 50 forks source link

Check if table exists in DB #19

Open raynoppe opened 9 years ago

raynoppe commented 9 years ago

Hi

Thanks for the great library.

I needed to know if a table pre-exist in the database, couldn't see how to do it using your library so I added it in before createTable function:

tableExist: function(query){ var deferred = $q.defer(); db.transaction(function(tx) { tx.executeSql("SELECT count(*) AS textist FROM sqlite_master WHERE type='table' AND name='"+query+"'", [], function(tx, results) { var ex = results.rows.item(0).textist; deferred.resolve(ex); }, function(tx, e){ console.log("There has been an error: " + e.message); deferred.reject(); }); }); return deferred.promise; }

Use in code.

$scope.db.tableExist("tablename").then(function(result) { if(result == 0){ console.log('No table found'); } else { console.log('Table found'); } });

Hope this helps someone :)

raynoppe commented 9 years ago

Added another in order to do a custom query:

plainQuery: function(query){ var deferred = $q.defer(); db.transaction(function(tx) { tx.executeSql(query, [], function(tx, results) { deferred.resolve(results); }, function(tx, e){ console.log("There has been an error: " + e.message); deferred.reject(); }); }); return deferred.promise; },

Use in code: $scope.db.plainQuery("SELECT * FROM projects ORDER BY projectName ").then(function(results) { s.projects.list = []; for(var i=0; i < results.rows.length; i++){ s.projects.list.push(results.rows.item(i)); } console.log(s.projects.list); });