| //------------------------------------------------------------------------- |
| // HTML5 Database |
| //------------------------------------------------------------------------- |
| var dbs = []; |
| var quotas = [2000000, 2000000]; |
| var names = ['mydb', 'rand' + Math.random()]; |
| function openDb(index) { |
| try { |
| databaseOutput('Openning db with name: ' + names[index]); |
| return openDatabase(names[index], "1.0", "Apache Cordova Demo", quotas[index]); |
| } catch (e) { |
| databaseOutput('Got exception: ' + e); |
| } |
| } |
| |
| var callDatabase = function(index) { |
| var db = dbs[index] = openDb(index); |
| if (!db) { |
| return; |
| } |
| databaseOutput("Database opened."); |
| db.transaction(function (tx) { |
| tx.executeSql('DROP TABLE IF EXISTS DEMO'); |
| tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)', [], |
| function(tx,results) { console.log("Created table"); }, |
| function(tx,err) { alert("Error creating table: "+err.message); }); |
| tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")', [], |
| function(tx,results) { console.log("Insert row1 success"); }, |
| function(tx,err) { alert("Error adding 1st row: "+err.message); }); |
| tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")', [], |
| function(tx,results) { console.log("Insert row2 success"); }, |
| function(tx,err) { alert("Error adding 2nd row: "+err.message); }); |
| databaseOutput("Data written to DEMO table."); |
| console.log("Data written to DEMO table."); |
| |
| tx.executeSql('SELECT * FROM DEMO', [], function (tx, results) { |
| var len = results.rows.length; |
| var text = "DEMO table: " + len + " rows found.<br>"; |
| text = text + "<table border='1'><tr><td>Row</td><td>Data</td></tr>"; |
| for (var i=0; i<len; i++){ |
| text = text + "<tr><td>" + i + "</td><td>" + results.rows.item(i).id + ", " + results.rows.item(i).data + "</td></tr>"; |
| } |
| text = text + "</table>"; |
| databaseOutput(text); |
| }, function(tx, err) { |
| alert("Error processing SELECT * SQL: "+err.message); |
| }); |
| tx.executeSql('SELECT ID FROM DEMO', [], function (tx, results) { |
| var len = results.rows.length; |
| var text = "DEMO table: " + len + " rows found.<br>"; |
| text = text + "<table border='1'><tr><td>Row</td><td>Data</td></tr>"; |
| for (var i=0; i<len; i++){ |
| text = text + "<tr><td>" + i + "</td><td>" + results.rows.item(i).id + "</td></tr>"; |
| } |
| text = text + "</table>"; |
| databaseOutput(text); |
| }, function(tx, err) { |
| alert("Error processing SELECT ID SQL: "+err.message); |
| }); |
| |
| }, |
| function(err) { |
| console.log("Transaction failed: " + err.message); |
| }); |
| |
| |
| }; |
| |
| var readDatabase = function(index) { |
| var db = dbs[index]; |
| if (!db) { |
| db = dbs[index] = openDb(index); |
| if (!db) { |
| return; |
| } |
| } |
| db.transaction(function (tx) { |
| tx.executeSql('SELECT * FROM DEMO WHERE id=2', [], function (tx, results) { |
| var len = results.rows.length; |
| var text = "DEMO table: " + len + " rows found.<br>"; |
| text = text + "<table border='1'><tr><td>Row</td><td>Data</td></tr>"; |
| for (var i=0; i<len; i++){ |
| text = text + "<tr><td>" + i + "</td><td>" + results.rows.item(i).id + ", " + results.rows.item(i).data + "</td></tr>"; |
| } |
| text = text + "</table>"; |
| databaseOutput(text); |
| }, function(tx, err) { |
| alert("Error processing SELECT * WHERE id=2 SQL: "+err.message); |
| }); |
| }); |
| } |
| |
| function increaseQuota(index) { |
| quotas[index] *= 2; |
| databaseOutput('quota ' + index + ' is now ' + quotas[index]); |
| } |
| |
| var databaseOutput = function(s) { |
| var el = document.getElementById("database_results"); |
| el.innerHTML = el.innerHTML + s + "<br>"; |
| }; |
| |
| /** |
| * Function called when page has finished loading. |
| */ |
| function init() { |
| document.addEventListener("deviceready", function() { |
| console.log("Device="+device.platform+" "+device.version); |
| }, false); |
| } |
| |
| window.onload = function() { |
| addListenerToClass('callDatabase0', callDatabase, [0]); |
| addListenerToClass('readDatabase0', readDatabase, [0]); |
| addListenerToClass('increaseQuota0', increaseQuota, [0]); |
| addListenerToClass('callDatabase1', callDatabase, 1); |
| addListenerToClass('readDatabase1', readDatabase, 1); |
| addListenerToClass('increaseQuota1', increaseQuota, 1); |
| addListenerToClass('reloadPage', function() { |
| location = location.href; |
| }); |
| addListenerToClass('backBtn', backHome); |
| init(); |
| } |