- データベースを開いてテーブルを作る
try { db = google.gears.factory.create('beta.database', '1.0'); db.open('hoge'); db.execute( 'CREATE TABLE IF NOT EXISTS hoge('+ 'id INTEGER PRIMARY KEY AUTOINCREMENT,'+ 'hoge TEXT' ')' ); }
SQLiteそのもの
- insertする
db.execute('INSERT OR REPLACE INTO hoge '+ 'VALUES( NULL, ?)', ["hoge"] );
ORなど文法もSQLiteそのまま
- selectする
var rs = db.execute('SELECT * FROM hoge'); while(rs.isValidRow()){ var row = {}; for(var i = 0, i_n = rs.fieldCount(); i < i_n; i++){ row[rs.fieldName(i)] = rs.field(i); } rs.next(); //処理 var str = row['hoge'];
連想配列に入れてアクセスするのが一番楽かな
var rs = db.execute('SELECT * FROM hoge'); while(rs.isValidRow()){ var str; for(var i = 0, i_n = rs.fieldCount(); i < i_n; i++){ if("hoge" == rs.fieldName(i)){ str = rs.field(i); } } rs.next();
にしたほうが楽なときもあるかも
- true, falseを渡すと挙動がおかしい?
詳しく追ってないが
'... VALUES(?)',[true]);
としたあとselectして値を取るとtrueではないことがあった
確かIEでは正しく動作してfirefoxでおかしかったと思うが
とりあえず
//define var TRUE = 1; var FALSE = 0; '... VALUES(?)',[TRUE]);
として対処した
- select count(*)
var selectCount = 0; try{ var rs = db.execute('SELECT COUNT(*) FROM hoge'); selectCount = rs.field(0); rs.close();
さらっと一通り触ったがあまりの強力さに愕然とする
またWEBの様相が一変しそうな予感…
かなり気に入ったのでgearsを使ってなにか作ってみよう