AirConnection_wev8.js
1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/*
* Ext JS Library 0.20
* Copyright(c) 2006-2008, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
Ext.sql.AirConnection = Ext.extend(Ext.sql.Connection, {
// abstract methods
open : function(db){
this.conn = new air.SQLConnection();
var file = air.File.applicationDirectory.resolvePath(db);
this.conn.open(file);
this.openState = true;
this.fireEvent('open', this);
},
close : function(){
this.conn.close();
this.fireEvent('close', this);
},
createStatement : function(type){
var stmt = new air.SQLStatement();
stmt.sqlConnection = this.conn;
return stmt;
},
exec : function(sql){
var stmt = this.createStatement('exec');
stmt.text = sql;
stmt.execute();
},
execBy : function(sql, args){
var stmt = this.createStatement('exec');
stmt.text = sql;
this.addParams(stmt, args);
stmt.execute();
},
query : function(sql){
var stmt = this.createStatement('query');
stmt.text = sql;
stmt.execute(this.maxResults);
return this.readResults(stmt.getResult());
},
queryBy : function(sql, args){
var stmt = this.createStatement('query');
stmt.text = sql;
this.addParams(stmt, args);
stmt.execute(this.maxResults);
return this.readResults(stmt.getResult());
},
addParams : function(stmt, args){
if(!args){ return; }
for(var key in args){
if(args.hasOwnProperty(key)){
if(!isNaN(key)){
var v = args[key];
if(Ext.isDate(v)){
v = v.format(Ext.sql.Proxy.DATE_FORMAT);
}
stmt.parameters[parseInt(key)] = v;
}else{
stmt.parameters[':' + key] = args[key];
}
}
}
return stmt;
},
readResults : function(rs){
var r = [];
if(rs && rs.data){
var len = rs.data.length;
for(var i = 0; i < len; i++) {
r[r.length] = rs.data[i];
}
}
return r;
}
});