Exemple #1
0
 def _exec_cmd(self, curs, sql, args, quiet=False):
     """Internal tool: Run SQL on cursor."""
     self.log.debug("exec_cmd: %s" % quote_statement(sql, args))
     curs.execute(sql, args)
     ok = True
     rows = curs.fetchall()
     for row in rows:
         try:
             code = row['ret_code']
             msg = row['ret_note']
         except KeyError:
             self.log.error("Query does not conform to exec_cmd API:")
             self.log.error("SQL: %s" % quote_statement(sql, args))
             self.log.error("Row: %s" % repr(row.copy()))
             sys.exit(1)
         level = code / 100
         if level == 1:
             self.log.debug("%d %s" % (code, msg))
         elif level == 2:
             if quiet:
                 self.log.debug("%d %s" % (code, msg))
             else:
                 self.log.info("%s" % (msg, ))
         elif level == 3:
             self.log.warning("%s" % (msg, ))
         else:
             self.log.error("%s" % (msg, ))
             self.log.debug("Query was: %s" % quote_statement(sql, args))
             ok = False
     return (ok, rows)
 def _exec_cmd(self, curs, sql, args, quiet = False):
     """Internal tool: Run SQL on cursor."""
     self.log.debug("exec_cmd: %s" % quote_statement(sql, args))
     curs.execute(sql, args)
     ok = True
     rows = curs.fetchall()
     for row in rows:
         try:
             code = row['ret_code']
             msg = row['ret_note']
         except KeyError:
             self.log.error("Query does not conform to exec_cmd API:")
             self.log.error("SQL: %s" % quote_statement(sql, args))
             self.log.error("Row: %s" % repr(row.copy()))
             sys.exit(1)
         level = code / 100
         if level == 1:
             self.log.debug("%d %s" % (code, msg))
         elif level == 2:
             if quiet:
                 self.log.debug("%d %s" % (code, msg))
             else:
                 self.log.info("%s" % (msg,))
         elif level == 3:
             self.log.warning("%s" % (msg,))
         else:
             self.log.error("%s" % (msg,))
             self.log.error("Query was: %s" % quote_statement(sql, args))
             ok = False
     return (ok, rows)
Exemple #3
0
    def display_table(self, db, desc, sql, args=[], fields=[]):
        """Display multirow query as a table."""

        self.log.debug("display_table: %s" % quote_statement(sql, args))
        curs = db.cursor()
        curs.execute(sql, args)
        rows = curs.fetchall()
        db.commit()
        if len(rows) == 0:
            return 0

        if not fields:
            fields = [f[0] for f in curs.description]

        widths = [15] * len(fields)
        for row in rows:
            for i, k in enumerate(fields):
                rlen = row[k] and len(str(row[k])) or 0
                widths[i] = widths[i] > rlen and widths[i] or rlen
        widths = [w + 2 for w in widths]

        fmt = '%%-%ds' * (len(widths) - 1) + '%%s'
        fmt = fmt % tuple(widths[:-1])
        if desc:
            print(desc)
        print(fmt % tuple(fields))
        print(fmt % tuple(['-' * (w - 2) for w in widths]))
        #print(fmt % tuple(['-'*15] * len(fields)))

        for row in rows:
            print(fmt % tuple([row[k] for k in fields]))
        print('\n')
        return 1
Exemple #4
0
    def display_table(self, db, desc, sql, args = [], fields = []):
        """Display multirow query as a table."""

        self.log.debug("display_table: %s" % quote_statement(sql, args))
        curs = db.cursor()
        curs.execute(sql, args)
        rows = curs.fetchall()
        db.commit()
        if len(rows) == 0:
            return 0

        if not fields:
            fields = [f[0] for f in curs.description]

        widths = [15] * len(fields)
        for row in rows:
            for i, k in enumerate(fields):
                rlen = row[k] and len(str(row[k])) or 0
                widths[i] = widths[i] > rlen and widths[i] or rlen
        widths = [w + 2 for w in widths]

        fmt = '%%-%ds' * (len(widths) - 1) + '%%s'
        fmt = fmt % tuple(widths[:-1])
        if desc:
            print(desc)
        print(fmt % tuple(fields))
        print(fmt % tuple([ '-' * (w - 2) for w in widths ]))
        #print(fmt % tuple(['-'*15] * len(fields)))

        for row in rows:
            print(fmt % tuple([row[k] for k in fields]))
        print('\n')
        return 1
Exemple #5
0
 def exec_query(self, db, sql, args):
     self.log.debug("exec_query: %s" % quote_statement(sql, args))
     curs = db.cursor()
     curs.execute(sql, args)
     res = curs.fetchall()
     db.commit()
     return res
Exemple #6
0
 def exec_query(self, db, sql, args):
     """Run regular query SQL on db."""
     self.log.debug("exec_query: %s" % quote_statement(sql, args))
     curs = db.cursor()
     curs.execute(sql, args)
     res = curs.fetchall()
     db.commit()
     return res
Exemple #7
0
 def exec_stmt(self, db, sql, args):
     """Run regular non-query SQL on db."""
     self.log.debug("exec_stmt: %s" % quote_statement(sql, args))
     curs = db.cursor()
     curs.execute(sql, args)
     db.commit()
Exemple #8
0
 def exec_stmt(self, db, sql, args):
     """Run regular non-query SQL on db."""
     self.log.debug("exec_stmt: %s" % quote_statement(sql, args))
     curs = db.cursor()
     curs.execute(sql, args)
     db.commit()
Exemple #9
0
 def exec_stmt(self, db, sql, args):
     self.log.debug("exec_stmt: %s" % quote_statement(sql, args))
     curs = db.cursor()
     curs.execute(sql, args)
     db.commit()