Web SQL Database
2011-12-27 20:36
246 查看
db = openDatabase("ToDo", "0.1", "A list of to do items.", 200000);
上代码创建了一个数据库对象 db,名称是 Todo,版本编号为0.1。db 还带有描述信息和大概的大小值。用户代理(user agent)可使用这个描述与用户进行交流,说明数据库是用来做什么的。利用代码中提供的大小值,用户代理可以为内容留出足够的存储。如果需要,这个大小是可以改变的,所以没有必要预先假设允许用户使用多少空间。
if(!db) alert("Failed to connect to database."); 检测之前创建的连接是否成功
执行查询
执行一个查询,你可以使用database.transaction()函数。该函数具有单一参数,负责查询实际执行的函数。
db.transaction( function(tx)
该事务具有一个函数:executeSql。这个函数使用四个参数:表示查询的字符串,插入到查询中问号所在处的字符串数据(很像 Java 的预先准备好的语句),一个成功时执行的函数和一个失败时执行的函数。
tx.executeSql("SELECT COUNT(*) FROM ToDo", [], function(result){}, function(tx, error){});
以下代码使用结果对象来输出一个查询的结果:
db.transaction( function(tx) { tx.executeSql("SELECT * FROM ToDo", [],
function(tx, result) { for(var i = 0; i < result.rows.length; i++)
{ document.write('<b>' + result.rows.item(i)['label'] + '</b><br />'); } }, null); } );
插入
db.transaction( function(tx) { tx.executeSql("INSERT INTO ToDo (label, timestamp) values(?, ?)",
[label, new Date().getTime()], null, null); } )
function createTable() {
db.transaction(function(tx) {
tx.executeSql("CREATE TABLE Table1Test (id REAL UNIQUE, text TEXT)", [],
function(tx) { log.innerHTML = 'Table1Test created' },
onError);
});
}
// add record with random values
function newRecord() {
var num = Math.round(Math.random() * 10000); // random data
db.transaction(function(tx) {
tx.executeSql("INSERT INTO Table1Test (id, text) VALUES (?, ?)", [num, 'Modify text...'],
function(tx, result) {
log.innerHTML = 'record added';
showRecords();
},
onError);
});
}
function updateRecord(id, textEl) {
db.transaction(function(tx) {
tx.executeSql("UPDATE Table1Test SET text = ? WHERE id = ?", [textEl.innerHTML, id], null, onError);
});
}
function deleteRecord(id) {
db.transaction(function(tx) {
tx.executeSql("DELETE FROM Table1Test WHERE id=?", [id],
function(tx, result) { showRecords() },
onError);
});
}
// delete table from db
function dropTable() {
db.transaction(function(tx) {
tx.executeSql("DROP TABLE Table1Test", [],
function(tx) { showRecords() },
onError);
});
}
上代码创建了一个数据库对象 db,名称是 Todo,版本编号为0.1。db 还带有描述信息和大概的大小值。用户代理(user agent)可使用这个描述与用户进行交流,说明数据库是用来做什么的。利用代码中提供的大小值,用户代理可以为内容留出足够的存储。如果需要,这个大小是可以改变的,所以没有必要预先假设允许用户使用多少空间。
if(!db) alert("Failed to connect to database."); 检测之前创建的连接是否成功
执行查询
执行一个查询,你可以使用database.transaction()函数。该函数具有单一参数,负责查询实际执行的函数。
db.transaction( function(tx)
该事务具有一个函数:executeSql。这个函数使用四个参数:表示查询的字符串,插入到查询中问号所在处的字符串数据(很像 Java 的预先准备好的语句),一个成功时执行的函数和一个失败时执行的函数。
tx.executeSql("SELECT COUNT(*) FROM ToDo", [], function(result){}, function(tx, error){});
以下代码使用结果对象来输出一个查询的结果:
db.transaction( function(tx) { tx.executeSql("SELECT * FROM ToDo", [],
function(tx, result) { for(var i = 0; i < result.rows.length; i++)
{ document.write('<b>' + result.rows.item(i)['label'] + '</b><br />'); } }, null); } );
插入
db.transaction( function(tx) { tx.executeSql("INSERT INTO ToDo (label, timestamp) values(?, ?)",
[label, new Date().getTime()], null, null); } )
function createTable() {
db.transaction(function(tx) {
tx.executeSql("CREATE TABLE Table1Test (id REAL UNIQUE, text TEXT)", [],
function(tx) { log.innerHTML = 'Table1Test created' },
onError);
});
}
// add record with random values
function newRecord() {
var num = Math.round(Math.random() * 10000); // random data
db.transaction(function(tx) {
tx.executeSql("INSERT INTO Table1Test (id, text) VALUES (?, ?)", [num, 'Modify text...'],
function(tx, result) {
log.innerHTML = 'record added';
showRecords();
},
onError);
});
}
function updateRecord(id, textEl) {
db.transaction(function(tx) {
tx.executeSql("UPDATE Table1Test SET text = ? WHERE id = ?", [textEl.innerHTML, id], null, onError);
});
}
function deleteRecord(id) {
db.transaction(function(tx) {
tx.executeSql("DELETE FROM Table1Test WHERE id=?", [id],
function(tx, result) { showRecords() },
onError);
});
}
// delete table from db
function dropTable() {
db.transaction(function(tx) {
tx.executeSql("DROP TABLE Table1Test", [],
function(tx) { showRecords() },
onError);
});
}
相关文章推荐
- HTML5本地存储——Web SQL Database
- HTML5 Web SQL Database 与 Indexed Database 的 CRUD 操作
- html 5 本地数据库(Web Sql Database)核心方法
- The 'System.Web.Security.SqlRoleProvider' requires a database schema compatible with schema version '1'. 解决方法
- HTML5开发学习:本地存储Web Sql Database
- HTML5 Web SQL Database 与 Indexed Database 的 CRUD 操作
- html5 使用web SQL database简单实例
- Web SQL Database的异步机制
- HTML5本地存储——Web SQL Database
- Web SQL Database
- html5 本地数据库(Web SQL Database)之事务处理函数 transaction和executeSQL 详解
- Web SQL Database
- Web Sql database 本地数据库
- html5 使用web SQL database简单实例
- Html5 web sql database
- html 5 本地数据库(二)-- Web Sql Database核心方法openDatabase、transaction、executeSql 详解
- html5 本地数据库-Web SQL Database操作类
- HTML5 Web SQL Database 与 Indexed Database 的 CRUD 操作
- 浅析Web数据存储-Cookie、UserData、SessionStorage、WebSqlDatabase
- HTML5本地存储——Web SQL Database