日期:2014-05-16 浏览次数:20585 次
//1. initialization
var localDB = null;
function onInit(){
try {
if (!window.openDatabase) {
updateStatus("Error: DB not supported");
}
else {
initDB();
createTables();
queryAndUpdateOverview();
}
}
catch (e) {
if (e == 2) {
updateStatus("Error: Invalid database version.");
}
else {
updateStatus("Error: Unknown error " + e + ".");
}
return;
}
}
function initDB(){
var shortName = 'stuffDB';
var version = '1.0';
var displayName = 'MyStuffDB';
var maxSize = 65536; // in bytes
localDB = window.openDatabase(shortName, version, displayName, maxSize);
}
function createTables(){
var query = 'CREATE TABLE IF NOT EXISTS items(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, amount VARCHAR NOT NULL, name VARCHAR NOT NULL);';
try {
localDB.transaction(function(transaction){
transaction.executeSql(query, [], nullDataHandler, errorHandler);
updateStatus("Table 'items' is present");
});
}
catch (e) {
updateStatus("Error: Unable to create table 'items' " + e + ".");
return;
}
}
//2. query db and view update
// event handler start with on*
function onUpdate(){
var id = document.itemForm.id.value;
var amount = document.itemForm.amount.value;
var name = document.itemForm.name.value;
if (amount == "" || name == "") {
updateStatus("'Amount' and 'Name' are required fields!");
}
else {
var query = "update items set amount=?, name=? where id=?;";
try {
localDB.transaction(function(transaction){
transaction.executeSql(query, [amount, name, id], function(transaction, results){
if (!results.rowsAffected) {
updateStatus("Error: No rows affected");
}
else {
updateForm("", "", "");
updateStatus("Updated rows:" + results.rowsAffected);
queryAndUpdateOverview();
}
}, errorHandler);
});
}
catch (e) {
updateStatus("Error: Unable to perform an UPDATE " + e + ".");
}
}
}
function onDelete(){
var id = document.itemForm.id.value;
var query = "delete from items where id=?;";
try {
localDB.transaction(function(transaction){
transaction.executeSql(query, [id], function(transaction, results){
if (!results.rowsAffected) {
updateStatus("Error: No rows affected.");
}
else {
updateForm("", "", "");
updateStatus("Deleted rows:" + results.rowsAffected);
queryAndUpdateOverview();
}
}, errorHandler);
});
}
catch (e) {
updateStatus("Error: Unable to perform an DELETE " + e + ".");
}
}
function onCreate(){
var amount = document.itemForm.amount.value;
var name = document.itemForm.name.value;
if (amount == "" || name == "") {
updateStatus("Error: 'Amount' and 'Name' are required fields!");
}
else {
var query = "insert into items (amount, name) VALUES (?, ?);";
try {
localDB.transaction(function(transaction){
transaction.executeSql(query, [amount, name], function(transaction, results){
if (!results.rowsAffected) {
updateStatus("Error: No rows affected.");
}
else {
updateForm("", "", "");
updateStatus("Inserted row with id " + results.insertId);
queryAndUpdateOverview();