blob: d0a953ddfbe2d8e4fe8ba1974851e8960702be4c [file] [log] [blame]
//-------------------------------------------------------------------------
// 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();
}