web sql databaseを少しだけ触ってみた。
まだ日本語の情報がほとんどないのでw3cの仕様書を参考にする。
Introductionにコードサンプルがあるけど、そのままだと動かない罠。
chrome5で試しているのだけれど、changeVersion()がどうも動かないみたい。中途半端にエラーがでるけど期待通りに動かないので使わないことにする。
あと、当たり前かもしれないけど、openDatabase()は1回だけ呼ぶものみたい。なんどもopenDatabase()するとchromeの要素検証画面にあるDatabaseタブに
たくさんDBのアイコンがでてくる。内部的に複数のDBオブジェクトが作成されているっぽい。とりあえずグローバルスコープに専用の変数を用意して回避。
そんなこんなで出来上がった、ただ書いて読むだけのコードが下記。
var g_db = null;
function prepareDatabase() {
if ( g_db != null ) { return g_db; }
return g_db = openDatabase("testdb05", '1.0', "testdb", 1024*1024*5, function (db){
db.transaction(function (t) {
t.executeSql("CREATE TABLE mytable(id,name)");
});
});
}
function writeDb() {
var db = prepareDatabase();
db.transaction(function (t){
t.executeSql("INSERT INTO mytable(id,name) values(1,2)");
});
}
function readDb() {
var db = prepareDatabase();
db.readTransaction(function (t){
t.executeSql("SELECT id,name FROM mytable", null, function (t,r){
alert(r.rows.item(0).name);
}, function (t,e) {
alert(e.message);
});
});
}
Post a Comment