Subversion Repositories eFlore/Applications.cel

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

/*
 * Ext JS Library 0.20
 * Copyright(c) 2006-2008, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://extjs.com/license
 */

// 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);
    }
};