The source code

    // Asbtract base class for Connection classes
    Ext.sql.Connection = function(config){
    	Ext.apply(this, config);
    	Ext.sql.Connection.superclass.constructor.call(this);

    	this.addEvents({
    		open : true,
    		close: true
    	});
    };

    Ext.extend(Ext.sql.Connection, Ext.util.Observable, {
    	maxResults: 10000,
    	openState : false,

        // abstract methods
        open : function(file){
    	},

    	close : function(){
    	},

        exec : function(sql){
    	},

    	execBy : function(sql, args){
    	},

    	query : function(sql){
    	},

    	queryBy : function(sql, args){
    	},

        // protected/inherited method
        isOpen : function(){
    		return this.openState;
    	},

    	getTable : function(name, keyName){
    		return new Ext.sql.Table(this, name, keyName);
    	},

    	createTable : function(o){
    		var tableName = o.name;
    		var keyName = o.key;
    		var fs = o.fields;
    		if(!Ext.isArray(fs)){ // Ext fields collection
    			fs = fs.items;
    		}
    		var buf = [];
    		for(var i = 0, len = fs.length; i < len; i++){
    			var f = fs[i], s = f.name;
    			switch(f.type){
    	            case "int":
    	            case "bool":
    	            case "boolean":
    	                s += ' INTEGER';
    	                break;
    	            case "float":
    	                s += ' REAL';
    	                break;
    	            default:
    	            	s += ' TEXT';
    	        }
    	        if(f.allowNull === false || f.name == keyName){
    	        	s += ' NOT NULL';
    	        }
    	        if(f.name == keyName){
    	        	s += ' PRIMARY KEY';
    	        }
    	        if(f.unique === true){
    	        	s += ' UNIQUE';
    	        }

    	        buf[buf.length] = s;
    	    }
    	    var sql = ['CREATE TABLE IF NOT EXISTS ', tableName, ' (', buf.join(','), ')'].join('');
            this.exec(sql);
    	}
    });

    Ext.sql.Connection.getInstance = function(db, config){
        if(Ext.isAir){ // air
            return new Ext.sql.AirConnection(config);
        } else { // gears
            return new Ext.sql.GearsConnection(config);
        }
    };