source: trunk/web/addons/job_monarch/lib/extjs/air/src/sql/AirConnection.js @ 619

Last change on this file since 619 was 619, checked in by ramonb, 15 years ago

lib/:

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