gears使い始めて二日、要点をメモ

  • データベースを開いてテーブルを作る
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を使ってなにか作ってみよう