Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / docs / source / Table.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.sql.Table = function(conn, name, keyName){\r
9         this.conn = conn;\r
10         this.name = name;\r
11         this.keyName = keyName;\r
12 };\r
13 \r
14 Ext.sql.Table.prototype = {\r
15         update : function(o){\r
16                 var clause = this.keyName + " = ?";\r
17                 return this.updateBy(o, clause, [o[this.keyName]]);\r
18         },\r
19 \r
20         updateBy : function(o, clause, args){\r
21                 var sql = "UPDATE " + this.name + " set ";\r
22                 var fs = [], a = [];\r
23                 for(var key in o){\r
24                         if(o.hasOwnProperty(key)){\r
25                                 fs[fs.length] = key + ' = ?';\r
26                                 a[a.length] = o[key];\r
27                         }\r
28                 }\r
29                 for(var key in args){\r
30                         if(args.hasOwnProperty(key)){\r
31                                 a[a.length] = args[key];\r
32                         }\r
33                 }\r
34                 sql = [sql, fs.join(','), ' WHERE ', clause].join('');\r
35                 return this.conn.execBy(sql, a);\r
36         },\r
37 \r
38         insert : function(o){\r
39                 var sql = "INSERT into " + this.name + " ";\r
40                 var fs = [], vs = [], a = [];\r
41                 for(var key in o){\r
42                         if(o.hasOwnProperty(key)){\r
43                                 fs[fs.length] = key;\r
44                                 vs[vs.length] = '?';\r
45                                 a[a.length] = o[key];\r
46                         }\r
47                 }\r
48                 sql = [sql, '(', fs.join(','), ') VALUES (', vs.join(','), ')'].join('');\r
49         return this.conn.execBy(sql, a);\r
50     },\r
51 \r
52         lookup : function(id){\r
53                 return this.selectBy('where ' + this.keyName + " = ?", [id])[0] || null;\r
54         },\r
55 \r
56         exists : function(id){\r
57                 return !!this.lookup(id);\r
58         },\r
59 \r
60         save : function(o){\r
61                 if(this.exists(o[this.keyName])){\r
62             this.update(o);\r
63         }else{\r
64             this.insert(o);\r
65         }\r
66         },\r
67 \r
68         select : function(clause){\r
69                 return this.selectBy(clause, null);\r
70         },\r
71 \r
72         selectBy : function(clause, args){\r
73                 var sql = "select * from " + this.name;\r
74                 if(clause){\r
75                         sql += ' ' + clause;\r
76                 }\r
77                 args = args || {};\r
78                 return this.conn.queryBy(sql, args);\r
79         },\r
80 \r
81         remove : function(clause){\r
82                 this.deleteBy(clause, null);\r
83         },\r
84 \r
85         removeBy : function(clause, args){\r
86                 var sql = "delete from " + this.name;\r
87                 if(clause){\r
88                         sql += ' where ' + clause;\r
89                 }\r
90                 args = args || {};\r
91                 this.conn.execBy(sql, args);\r
92         }\r
93 };</pre>    \r
94 </body>\r
95 </html>