X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/ee06f37b0f6f6d94cd05a6ffae556660f7c4a2bc..c930e9176a5a85509c5b0230e2bff5c22a591432:/docs/source/ext-air-db.html?ds=sidebyside diff --git a/docs/source/ext-air-db.html b/docs/source/ext-air-db.html new file mode 100644 index 00000000..6b2e2366 --- /dev/null +++ b/docs/source/ext-air-db.html @@ -0,0 +1,106 @@ + +
+Ext.data.AirDB = Ext.extend(Ext.data.SqlDB, { + open : function(db, cb, scope){ + this.conn = new air.SQLConnection(); + + var file = air.File.applicationResourceDirectory.resolve(db); + + this.conn.addEventListener(air.SQLEvent.OPEN, this.onOpen.createDelegate(this, [cb, scope])); + this.conn.addEventListener(air.SQLEvent.CLOSE, this.onClose.createDelegate(this)); + this.conn.open(file, true); + }, + + close : function(){ + this.conn.close(); + }, + + onOpen : function(cb, scope){ + this.openState = true; + Ext.callback(cb, scope, [this]); + this.fireEvent('open', this); + }, + + onClose : function(){ + this.fireEvent('close', this); + }, + + onError : function(e, stmt, type, cb, scope){ + Ext.callback(cb, scope, [false, e, stmt]); + }, + + onResult : function(e, stmt, type, cb, scope){ + if(type == 'exec'){ + Ext.callback(cb, scope, [true, e, stmt]); + }else{ + var r = []; + var result = stmt.getResult(); + if(result && result.data){ + var len = result.data.length; + for(var i = 0; i < len; i++) { + r[r.length] = result.data[i]; + } + } + Ext.callback(cb, scope, [r, e, stmt]); + } + }, + + createStatement : function(type, cb, scope){ + + var stmt = new air.SQLStatement(); + + stmt.addEventListener(air.SQLErrorEvent.ERROR, this.onError.createDelegate(this, [stmt, type, cb, scope], true)); + stmt.addEventListener(air.SQLEvent.RESULT, this.onResult.createDelegate(this, [stmt, type, cb, scope], true)); + + stmt.sqlConnection = this.conn; + + return stmt; + }, + + exec : function(sql, cb, scope){ + var stmt = this.createStatement('exec', cb, scope); + stmt.text = sql; + stmt.execute(); + }, + + execBy : function(sql, args, cb, scope){ + var stmt = this.createStatement('exec', cb, scope); + stmt.text = sql; + this.addParams(stmt, args); + stmt.execute(); + }, + + query : function(sql, cb, scope){ + var stmt = this.createStatement('query', cb, scope); + stmt.text = sql; + stmt.execute(this.maxResults); + }, + + queryBy : function(sql, args, cb, scope){ + var stmt = this.createStatement('query', cb, scope); + stmt.text = sql; + this.addParams(stmt, args); + stmt.execute(this.maxResults); + }, + + addParams : function(stmt, args){ + if(!args){ return; } + for(var key in args){ + if(args.hasOwnProperty(key)){ + if(!isNaN(key)){ + stmt.parameters[parseInt(key)+1] = args[key]; + }else{ + stmt.parameters[':' + key] = args[key]; + } + } + } + return stmt; + } +});+ + \ No newline at end of file