JazzRecord(ActiveRecord for JavaScript (ORM)のソースは自分の中では結構読み易いから、自分が作っているアプリで参考になりそうなので気がしてます。
JazzRecordのページには
A JS ORM for Google Gears, Adobe AIR, and Appcelerator Titanium
JazzRecord currently supports Google Gears, Adobe AIR, and Appcelerator Titanium PR1, although support for additional JS environments (such as HTML 5 and Aptana Jaxer) is planned.
とTitaniumのPR1ならサポートとありますが、現在のバージョンで使えそうなのかgithubにあるadapter.jsのソースを眺めていたら、関連しそうなところが見つかったので一部引用します。
// JazzRecord.TitaniumMobileAdapter = function(options) { // use the synchronous DB API in Titanium which // is API compatible with Gears DB API JazzRecord.setOptions.call(this, options, { dbFile: "jazz_record" }); JazzRecord.extend.call(this, JazzRecord.Adapter); this.db = Titanium.Database.open(this.options.dbFile); this.result = null; }; JazzRecord.TitaniumMobileAdapter.prototype = { run: function(query) { this.parent.run(query); this.result = this.db.execute(query); var rows = []; if(query.indexOf("CREATE") > -1) { return rows; } while(this.result.isValidRow()) { var row = {}; for(var i = 0, j = this.result.getFieldCount(); i < j; i++) { var field = this.result.getFieldName(i); row[field] = this.result.field(i); } rows.push(row); this.result.next(); } this.result.close(); return rows; }, count: function(query) { this.parent.count(query); this.result = this.db.execute(query); var number = this.result.field(0); this.result.close(); return number; }, save: function(query) { this.parent.save(query); this.db.execute(query); return this.db.lastInsertRowId; } };
パッと見た限り使えそうな気がするので、まずはテストコード書いて試してみようと思います(次回続く)