| var database={}; |
| database.db={}; |
| |
| database.onError = function(tx, e) { |
| var log = document.createElement('div'); |
| log.setAttribute('name','error'); |
| log.setAttribute('style','background-color:red'); |
| log.innerText = e.message; |
| document.getElementById('logs').appendChild(log); |
| } |
| |
| database.onSuccess = function(tx, r) { |
| if (r.rows.length) { |
| var ol; |
| for (var i = 0; i < r.rows.length; i++) { |
| ol = document.createElement('ol'); |
| ol.innerHTML = r.rows.item(i).ID + ": " + r.rows.item(i).docname + " (" + r.rows.item(i).created + ")"; |
| document.getElementById('logs').appendChild(ol); |
| } |
| |
| } |
| } |
| |
| database.open=function(){ |
| database.db=openDatabase('HTML5', '1.0', 'Offline document storage', 100*1024); |
| } |
| |
| database.create=function(){ |
| database.db.transaction(function(tx) { |
| tx.executeSql("CREATE TABLE IF NOT EXISTS docs(ID INTEGER PRIMARY KEY ASC, docname TEXT, created TIMESTAMP DEFAULT CURRENT_TIMESTAMP)", |
| [], |
| database.onSuccess, |
| database.onError); |
| });} |
| |
| database.add = function(message) { |
| database.db.transaction(function(tx){ |
| tx.executeSql("INSERT INTO docs(docname) VALUES (?)", |
| [message], database.onSuccess, database.onError); |
| }); |
| } |
| |
| database.selectAll = function() { |
| database.db.transaction(function(tx) { |
| tx.executeSql("SELECT * FROM docs", [], database.onSuccess, |
| database.onError); |
| }); |
| } |
| |
| database.onDeleteAllSuccess = function(tx, r) { |
| var doc = document.documentElement; |
| var db_completed = document.createElement("div"); |
| db_completed.setAttribute("id", "db_completed"); |
| db_completed.innerText = "db operation completed"; |
| doc.appendChild(db_completed); |
| } |
| |
| database.deleteAll = function() { |
| database.db.transaction(function(tx) { |
| tx.executeSql("delete from docs", [], database.onDeleteAllSuccess, |
| database.onError); |
| }); |
| } |
| |
| var log = document.createElement('div'); |
| log.setAttribute('name','notice'); |
| log.setAttribute('style','background-color:yellow'); |
| log.innerText = typeof window.openDatabase == "function" ? "Web Database is supported." : "Web Database is not supported."; |
| document.getElementById('logs').appendChild(log); |
| |
| try { |
| database.open(); |
| database.create(); |
| database.add('Doc 1'); |
| database.add('Doc 2'); |
| database.selectAll(); |
| database.deleteAll(); |
| } catch(error) { |
| var log = document.createElement('div'); |
| log.setAttribute('name','critical'); |
| log.setAttribute('style','background-color:pink'); |
| log.innerText = error; |
| document.getElementById('logs').appendChild(log); |
| } |