日期:2014-05-16 浏览次数:20479 次
//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();