-
-
- 打开数据库
- 开始事务处理
- 执行SQL
- 处理SQL的执行结果
首先:检查是否支持Web SQLDatabase if(window.openDatabase==undefined){alert("浏览器不支持Web Database!");return; }
第二:打开数据库 window.openDatabase(数据库名,版本号,显示名,预计占用空间); 数据库名:指定数据库的名称 版本号:指定数据模式的版本号 显示名:调试时候使用的数据库略称 预计占用空间:以字节单位指定数据库预计会占用的空间 db=window.openDatabase("testdb","1.0","sample",1024*1024);
第三:开始事务处理 打开数据库之后,在进行任何数据库操作时调用transaction()方法。在transaction()方法的callback函数内执行具体的SQL transaction (Database对象).transaction(callback,onError,onSuccess); callback:事务处理内执行的处理 onError:事务处理发生错误时候的处理 onSuccess:事务处理成功的处理例如 db.transaction(function(txt)){//事务处理中执行的处理 }
第四:执行SQL 在事务处理方法中执行SQL。调用callback函数参数(tx)的方法来执行SQL (SQLTransaction对象).executeSql(sql,args,onSuccess,onError); 上述参数的具体含义 sql:指定的SQL语句 args:替换SQL中? onSuccess:成功执行SQL时候的处理 onError:SQL执行失败时候的处理 db.transaction(function(tx)){ var sec=newDate().getTime(); var str=newDate().toString();tx.executeSql("insert into table(sec,str)values(?,?)",[sec,str]); } 第五:处理SQL的执行结果 处理SELECT语句的执行结果再onSuccess()函数中 functiononSuccess(tx,resultSet){ } tx:获得SQLTransaction对象 resultSet:获得SQLResultSet对象
SQLResultSet对象包含的属性 insertId:执行INSERT语句返回的ID rowsAffected:执行SQL语句返回的处理行数 rows:执行SELECT语句返回的结果集合 另外rows中含有如下方法和属性 item(index):指定index从结果集合中取出记录 length :获得记录数
db.transaction(function(tx)){ tx.executeSql("select * fromtime",[],function(tx,rs){//处理并显示执行结果 for(vari=0;i<rs.rows.length;i++){ varrow=rs.rows.item(i); document.write(row.str+"<br>"); } }); }