コード例 #1
0
 def __init__(self, cfg=None):
     if cfg is None:
         cfg = PaellaConfig('database')
     if type(cfg) is not dict:
         dsn = cfg.get_dsn()
     else:
         dsn = cfg
     if os.environ.has_key('PAELLA_DBHOST'):
         dsn['dbhost'] = os.environ['PAELLA_DBHOST']
     if os.environ.has_key('PAELLA_DBNAME'):
         dsn['dbname'] = os.environ['PAELLA_DBNAME']
     if os.environ.has_key('PAELLA_DBPORT'):
         dsn['dbport'] = int(os.environ['PAELLA_DBPORT'])
         if dsn['dbport'] not in range(1, 65536):
             raise ValueError, 'bad database port %s' % dsn['dbport']
     user = dsn['dbusername']
     host = dsn['dbhost']
     dbname = dsn['dbname']
     passwd = dsn['dbpassword']
     autocommit = 0
     if dsn['autocommit'] == 'true':
         autocommit = 1
     if 'dbport' in dsn:
         port = dsn['dbport']
     else:
         port = 5432
     BasicConnection.__init__(self,
                              user=user,
                              host=host,
                              dbname=dbname,
                              passwd=passwd,
                              port=port)
     self.autocommit = autocommit
コード例 #2
0
 def __init__(self, cfg=None):
     if cfg is None:
         cfg = PaellaConfig('database')
     if type(cfg) is not dict:
         dsn = cfg.get_dsn()
     else:
         dsn = cfg
     if os.environ.has_key('PAELLA_DBHOST'):
         dsn['dbhost'] = os.environ['PAELLA_DBHOST']
     if os.environ.has_key('PAELLA_DBNAME'):
         dsn['dbname'] = os.environ['PAELLA_DBNAME']
     if os.environ.has_key('PAELLA_DBPORT'):
         dsn['dbport'] = int(os.environ['PAELLA_DBPORT'])
         if dsn['dbport'] not in range(1, 65536):
             raise ValueError, 'bad database port %s' % dsn['dbport']
     user = dsn['dbusername']
     host = dsn['dbhost']
     dbname = dsn['dbname']
     passwd = dsn['dbpassword']
     autocommit = 0
     if dsn['autocommit'] == 'true':
         autocommit = 1
     if 'dbport' in dsn:
         port = dsn['dbport']
     else:
         port = 5432
     BasicConnection.__init__(self, user=user, host=host,
                             dbname=dbname, passwd=passwd, port=port)
     self.autocommit = autocommit
コード例 #3
0
 def __init__(self, dsn=None, cfg=None):
     if dsn is None:
         dsn = PaellaConfig('database').get_dsn()
     if cfg is not None:
         deprecated('cfg parameter to PaellaConnection is deprecated')
         dsn = None
         if type(cfg) is PaellaConfig:
             dsn = cfg.get_dsn()
     if dsn is None:
         raise RuntimeError, 'Problem with the arguements to PaellaConnection'
     if os.environ.has_key('PAELLA_DBHOST'):
         dsn['dbhost'] = os.environ['PAELLA_DBHOST']
     if os.environ.has_key('PAELLA_DBNAME'):
         dsn['dbname'] = os.environ['PAELLA_DBNAME']
     if os.environ.has_key('PAELLA_DBPORT'):
         dsn['dbport'] = int(os.environ['PAELLA_DBPORT'])
         if dsn['dbport'] not in range(1, 65536):
             raise ValueError, 'bad database port %s' % dsn['dbport']
     user = dsn['dbusername']
     host = dsn['dbhost']
     dbname = dsn['dbname']
     passwd = dsn['dbpassword']
     if 'dbport' in dsn:
         port = dsn['dbport']
     else:
         port = 5432
     BasicConnection.__init__(self,
                              user=user,
                              host=host,
                              dbname=dbname,
                              passwd=passwd,
                              port=port)
     self.autocommit = 1
     self.__dict__['suitecursor'] = SuiteCursor(self)
コード例 #4
0
ファイル: __init__.py プロジェクト: joelsefus/paella
 def __init__(self, dsn=None, cfg=None):
     if dsn is None:
         dsn = PaellaConfig('database').get_dsn()
     if cfg is not None:
         deprecated('cfg parameter to PaellaConnection is deprecated')
         dsn = None
         if type(cfg) is PaellaConfig:
             dsn = cfg.get_dsn()
     if dsn is None:
         raise RuntimeError , 'Problem with the arguments to PaellaConnection'
     if os.environ.has_key('PAELLA_DBHOST'):
         dsn['dbhost'] = os.environ['PAELLA_DBHOST']
     if os.environ.has_key('PAELLA_DBNAME'):
         dsn['dbname'] = os.environ['PAELLA_DBNAME']
     if os.environ.has_key('PAELLA_DBPORT'):
         dsn['dbport'] = int(os.environ['PAELLA_DBPORT'])
         if dsn['dbport'] not in range(1, 65536):
             raise ValueError, 'bad database port %s' % dsn['dbport']
     if os.environ.has_key('PAELLA_DBUSER'):
         dsn['dbusername'] = os.environ['PAELLA_DBUSER']
     user = dsn['dbusername']
     host = dsn['dbhost']
     dbname = dsn['dbname']
     passwd = dsn['dbpassword']
     if 'dbport' in dsn:
         port = dsn['dbport']
     else:
         port = 5432
     BasicConnection.__init__(self, user=user, host=host,
                             dbname=dbname, passwd=passwd, port=port)
     self.autocommit = 1
     self.__dict__['suitecursor'] = SuiteCursor(self)
コード例 #5
0
 def __init__(self, dsn, name, parent=None, objname=None):
     QSqlDatabase.__init__(self, 'QPSQL7', name, parent, objname)
     self.conn = BasicConnection(**dsn)
     self.setDatabaseName(dsn['dbname'])
     self.setHostName(dsn['host'])
     self.dbuser = dsn['user']
     self.setUserName(self.dbuser)
     self.stmt = Statement()
     self.mcursor = StatementCursor(self.conn)
コード例 #6
0
 def __init__(self, dsn, name, parent=None, objname=None):
     deprecated('useless.kdedb.BaseDatabase is deprecated')
     QSqlDatabase.__init__(self, 'QPSQL7', name, parent, objname)
     if hasattr(dsn, 'items'): #if dsn is dictionary
         self.conn = BasicConnection(**dsn)
         self.setDatabaseName(dsn['dbname'])
         self.setHostName(dsn['host'])
         self.dbuser = dsn['user']
     else: #else a conn was passed as dsn
         self.conn = dsn
         self.setDatabaseName(self.conn.conn.db)
         self.setHostName(self.conn.conn.host)
         self.dbuser = self.conn.conn.user
     self.setUserName(self.dbuser)
     self.stmt = Statement()
     self.mcursor = StatementCursor(self.conn)
コード例 #7
0
class BaseDatabase(QSqlDatabase):
    def __init__(self, dsn, name, parent=None, objname=None):
        deprecated('useless.kdedb.BaseDatabase is deprecated')
        QSqlDatabase.__init__(self, 'QPSQL7', name, parent, objname)
        if hasattr(dsn, 'items'): #if dsn is dictionary
            self.conn = BasicConnection(**dsn)
            self.setDatabaseName(dsn['dbname'])
            self.setHostName(dsn['host'])
            self.dbuser = dsn['user']
        else: #else a conn was passed as dsn
            self.conn = dsn
            self.setDatabaseName(self.conn.conn.db)
            self.setHostName(self.conn.conn.host)
            self.dbuser = self.conn.conn.user
        self.setUserName(self.dbuser)
        self.stmt = Statement()
        self.mcursor = StatementCursor(self.conn)
        
    def set_table(self, table):
        self.stmt.table = table

    def set_clause(self, items, cmp='=', join='and'):
        self.stmt.set_clause(items, cmp=cmp, join=join)

    def set_data(self, data):
        self.stmt.set(data)

    def set_fields(self, fields):
        self.stmt.fields = fields

    def qdelete(self, table=None, clause=None):
        query = self.stmt.delete(table=table, clause=clause)
        return self.execStatement(query)

    def qinsert(self, table=None, data=None):
        query = self.stmt.insert(table=table, data=data)
        return self.execStatement(query)

    def qupdate(self, table=None, data=None, clause=None):
        query = self.stmt.update(table=table, data=data, clause=clause)
        return self.execStatement(query)

    def qselect(self, fields=None, table=None, clause=None,
               group=None, having=None, order=None):
        query = self.stmt.select(fields=fields, table=table, clause=clause,
                                 group=group, having=having, order=order)
        return self.execStatement(query)

    def delete(self, table=None, clause=None):
        query = self.stmt.delete(table=table, clause=clause)
        return self.mcursor.execute(query)

    def insert(self, table=None, data=None):
        query = self.stmt.insert(table=table, data=data)
        return self.mcursor.execute(query)

    def update(self, table=None, data=None, clause=None):
        query = self.stmt.update(table=table, data=data, clause=clause)
        return self.mcursor.execute(query)

    def select(self, fields=None, table=None, clause=None,
               group=None, having=None, order=None):
        query = self.stmt.select(fields=fields, table=table, clause=clause,
                                 group=group, having=having, order=order)
        self.mcursor.execute(query)
        return self.mcursor.fetchall()

    def select_row(self, fields=None, table=None, clause=None,
               group=None, having=None, order=None):
        query = self.stmt.select(fields=fields, table=table, clause=clause,
                                 group=group, having=having, order=order)
        self.mcursor.execute(query)
        rows = len(self.mcursor)
        if rows == 1:
            return self.mcursor.next()
        elif rows == 0:
            raise NoExistError
        else:
            raise RuntimeError, 'bad row count %s' % rows

    def clear(self, **args):
        self.stmt.clear(**args)

    def stdclause(self, data):
        return reduce(and_, [Eq(k, v) for k,v in data.items()])

    def insertData(self, idcol, table, data, commit=True):
        clause = self.stdclause(data)
        try:
            self.mcursor.select_row(fields=[idcol], table=table, clause=clause)
        except NoExistError:
            self.mcursor.insert(table=table, data=data)
            if commit:
                self.conn.commit()
            
    def identifyData(self, idcol, table, data, commit=True):
        clause = self.stdclause(data)
        self.insertData(idcol, table, data, commit=commit)
        return self.mcursor.select_row(fields=['*'], table=table, clause=clause)
コード例 #8
0
 def cursor(self, statement=False):
     if statement:
         return StatementCursor(self)
     else:
         return BasicConnection.cursor(self)
コード例 #9
0
ファイル: __init__.py プロジェクト: joelsefus/paella
 def cursor(self, statement=False):
     if statement:
         return StatementCursor(self)
     else:
         return BasicConnection.cursor(self)
コード例 #10
0
 def __init__(self):
     dsn = dict(user='******', host='bard', dbname='konsultant')
     BasicConnection.__init__(self, **dsn)
コード例 #11
0
    execute(grant_public(tables))
    execute(grant_group('ALL', sequences, group))
    execute(grant_group('ALL', [t().name for t in full], group))
    execute(grant_group('INSERT', [t().name for t in ins + insup], group))
    execute(grant_group('UPDATE', [t().name for t in insup], group))
    for status in TR_STATUS:
        cursor.insert(table='trouble_status', data=dict(status=status))
        
    
    
    
if __name__ == '__main__':
    import os
    from useless.db.lowlevel import BasicConnection
    from useless.db.midlevel import StatementCursor
    from useless.base.config import Configuration
    from konsultant.base.config import BaseConfig
    from konsultant.db import BaseDatabase
    cfg = Configuration('database', os.path.expanduser('~/.kde/share/config/konsultantrc'))
    dbname = cfg['dbname']
    dbhost = cfg['dbhost']
    dbuser = cfg['dbuser']
    conn = BasicConnection(dbuser, dbhost, dbname)
    #fg = BaseConfig()
    #b = BaseDatabase( cfg , 'schema maker')
    c = StatementCursor(conn)
    if not len(c.tables()):
        create_schema(c, 'konsultant')
        conn.commit()