Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / docs / source / Connection1.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">// Asbtract base class for Connection classes\r
9 Ext.sql.Connection = function(config){\r
10         Ext.apply(this, config);\r
11         Ext.sql.Connection.superclass.constructor.call(this);\r
12 \r
13         this.addEvents({\r
14                 open : true,\r
15                 close: true\r
16         });\r
17 };\r
18 \r
19 Ext.extend(Ext.sql.Connection, Ext.util.Observable, {\r
20         maxResults: 10000,\r
21         openState : false,\r
22 \r
23     // abstract methods\r
24     open : function(file){\r
25         },\r
26 \r
27         close : function(){\r
28         },\r
29 \r
30     exec : function(sql){\r
31         },\r
32 \r
33         execBy : function(sql, args){\r
34         },\r
35 \r
36         query : function(sql){\r
37         },\r
38 \r
39         queryBy : function(sql, args){\r
40         },\r
41 \r
42     // protected/inherited method\r
43     isOpen : function(){\r
44                 return this.openState;\r
45         },\r
46 \r
47         getTable : function(name, keyName){\r
48                 return new Ext.sql.Table(this, name, keyName);\r
49         },\r
50 \r
51         createTable : function(o){\r
52                 var tableName = o.name;\r
53                 var keyName = o.key;\r
54                 var fs = o.fields;\r
55                 if(!Ext.isArray(fs)){ // Ext fields collection\r
56                         fs = fs.items;\r
57                 }\r
58                 var buf = [];\r
59                 for(var i = 0, len = fs.length; i < len; i++){\r
60                         var f = fs[i], s = f.name;\r
61                         switch(f.type){\r
62                     case "int":\r
63                     case "bool":\r
64                     case "boolean":\r
65                         s += ' INTEGER';\r
66                         break;\r
67                     case "float":\r
68                         s += ' REAL';\r
69                         break;\r
70                     default:\r
71                         s += ' TEXT';\r
72                 }\r
73                 if(f.allowNull === false || f.name == keyName){\r
74                         s += ' NOT NULL';\r
75                 }\r
76                 if(f.name == keyName){\r
77                         s += ' PRIMARY KEY';\r
78                 }\r
79                 if(f.unique === true){\r
80                         s += ' UNIQUE';\r
81                 }\r
82 \r
83                 buf[buf.length] = s;\r
84             }\r
85             var sql = ['CREATE TABLE IF NOT EXISTS ', tableName, ' (', buf.join(','), ')'].join('');\r
86         this.exec(sql);\r
87         }\r
88 });\r
89 \r
90 \r
91 Ext.sql.Connection.getInstance = function(db, config){\r
92     if(Ext.isAir){ // air\r
93         return new Ext.sql.AirConnection(config);\r
94     } else { // gears\r
95         return new Ext.sql.GearsConnection(config);\r
96     }\r
97 };</pre>    \r
98 </body>\r
99 </html>