Skip to content

web sql database を使ってみる

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

Your email is never published nor shared. Required fields are marked *
*
*