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
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)
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)
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)
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)
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)
def cursor(self, statement=False): if statement: return StatementCursor(self) else: return BasicConnection.cursor(self)
def __init__(self): dsn = dict(user='******', host='bard', dbname='konsultant') BasicConnection.__init__(self, **dsn)
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()