Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / docs / source / ext-gears-db.html
1 <html>\r
2 <head>\r
3   <title>The source code</title>\r
4     <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
5     <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
6 </head>\r
7 <body  onload="prettyPrint();">\r
8     <pre class="prettyprint lang-js">Ext.data.GearsDB = Ext.extend(Ext.data.SqlDB, {\r
9         // abstract methods\r
10     open : function(db, cb, scope){\r
11         this.conn = google.gears.factory.create('beta.database', '1.0');\r
12         this.conn.open(db);\r
13         this.openState = true;\r
14                 Ext.callback(cb, scope, [this]);\r
15                 this.fireEvent('open', this);\r
16     },\r
17 \r
18         close : function(){\r
19         this.conn.close();\r
20         this.fireEvent('close', this);\r
21     },\r
22 \r
23     exec : function(sql, cb, scope){\r
24         this.conn.execute(sql).close();\r
25         Ext.callback(cb, scope, [true]);\r
26     },\r
27 \r
28         execBy : function(sql, args, cb, scope){\r
29             this.conn.execute(sql, args).close();\r
30         Ext.callback(cb, scope, [true]);\r
31     },\r
32 \r
33         query : function(sql, cb, scope){\r
34         var rs = this.conn.execute(sql);\r
35         var r = this.readResults(rs);\r
36         Ext.callback(cb, scope, [r]);\r
37         return r;\r
38     },\r
39 \r
40         queryBy : function(sql, args, cb, scope){\r
41         var rs = this.conn.execute(sql, args);\r
42         var r = this.readResults(rs);\r
43         Ext.callback(cb, scope, [r]);\r
44         return r;\r
45     },\r
46 \r
47     readResults : function(rs){\r
48         var r = [];\r
49         if(rs){\r
50             var c = rs.fieldCount();\r
51             // precache field names\r
52             var fs = [];\r
53             for(var i = 0; i < c; i++){\r
54                 fs[i] = rs.fieldName(i);\r
55             }\r
56             // read the data\r
57             while(rs.isValidRow()){\r
58                 var o = {};\r
59                 for(var i = 0; i < c; i++){\r
60                     o[fs[i]] = rs.field(i);\r
61                 }\r
62                 r[r.length] = o;\r
63                 rs.next();\r
64             }\r
65             rs.close();\r
66         }\r
67         return r;\r
68     },\r
69 \r
70     // protected/inherited method\r
71     isOpen : function(){\r
72                 return this.openState;\r
73         },\r
74 \r
75         getTable : function(name, keyName){\r
76                 return new Ext.data.SqlDB.Table(this, name, keyName);\r
77         }\r
78 });</pre>    \r
79 </body>\r
80 </html>