예제 #1
0
class SQLiteWrapper(object):
    def __init__(self, filename="stocks.db", logger=None):
        super(SQLiteWrapper, self).__init__()
        self._db_name = filename
        if logger is None:
            self._logger = LogSubsystem(self.__class__.__name__,
                                        'debug').getLog()
        else:
            self._logger = logger
        self._logger.info(
            'Running sqlite python wrapper - version {} / {}'.format(
                sql.version, sql.sqlite_version))
        self._connection = sql.connect(self._db_name)
        self._connection.row_factory = sql.Row
        self._connection.text_factory = str
        self.cursor = self._connection.cursor()
        self._logger.info("Database connection to %s established." %
                          self._db_name)
        self._n = 0
        self.connected = True

    def execute(self, cmd, params=tuple()):
        '''
        Execute the command cmd. '?'s in the command are replaced by the params tuple's content.
        '''
        cmd = cmd.lower()
        self._n += 1
        n = self._n
        many = False
        res = []
        try:
            if type(params[0]) is type(list()):
                self._logger.debug('Executing several queries at a time')
                many = True
        except:
            many = False
        start = time.time()
        try:
            if (many):
                self.cursor.executemany(cmd, params)
            else:
                self.cursor.execute(cmd, params)
            #FIXME where word is used in 'fetchone commands'(see isTableExists), matter ?
            if cmd.find('where') < 0:
                res = self.cursor.fetchall()
                #if len(res) == 1:
                #res = res[0]
            else:
                res = self.cursor.fetchone()
                #NOTE Relevant ?
                #if len(res) == 1:
                #res = res[0]
        except sql.Error, e:
            self._logger.error("Database error: '%s'." % e.args[0])
        dur = time.time() - start
        self._logger.debug("Database query %s executed in %s seconds." %
                           (n, dur))
        return res
class SQLiteWrapper(object):
    def __init__(self, filename="stocks.db", logger=None):
        super(SQLiteWrapper, self).__init__()
        self._db_name = filename
        if logger is None:
            self._logger = LogSubsystem(self.__class__.__name__, 'debug').getLog()
        else:
            self._logger = logger
        self._logger.info('Running sqlite python wrapper - version {} / {}'.format(sql.version, sql.sqlite_version))
        self._connection = sql.connect(self._db_name)
        self._connection.row_factory = sql.Row
        self._connection.text_factory = str
        self.cursor = self._connection.cursor()
        self._logger.info("Database connection to %s established." % self._db_name)
        self._n = 0
        self.connected = True

    def execute(self, cmd, params=tuple()):
        '''
        Execute the command cmd. '?'s in the command are replaced by the params tuple's content.
        '''
        cmd = cmd.lower()
        self._n += 1
        n = self._n
        many = False
        res = []
        try:
            if type(params[0]) is type(list()):
                self._logger.debug('Executing several queries at a time')
                many = True
        except:
            many = False
        start = time.time()
        try:
            if (many):
                self.cursor.executemany(cmd, params)
            else:
                self.cursor.execute(cmd, params)
            #FIXME where word is used in 'fetchone commands'(see isTableExists), matter ?
            if cmd.find('where') < 0:
                res = self.cursor.fetchall()
                #if len(res) == 1:
                    #res = res[0]
            else:
                res = self.cursor.fetchone()
                #NOTE Relevant ?
                #if len(res) == 1:
                    #res = res[0]
        except sql.Error, e:
            self._logger.error("Database error: '%s'." % e.args[0])
        dur = time.time() - start
        self._logger.debug("Database query %s executed in %s seconds." % (n, dur))
        return res
예제 #3
0
 def __init__(self, filename="stocks.db", logger=None):
     super(SQLiteWrapper, self).__init__()
     self._db_name = filename
     if logger is None:
         self._logger = LogSubsystem(self.__class__.__name__,
                                     'debug').getLog()
     else:
         self._logger = logger
     self._logger.info(
         'Running sqlite python wrapper - version {} / {}'.format(
             sql.version, sql.sqlite_version))
     self._connection = sql.connect(self._db_name)
     self._connection.row_factory = sql.Row
     self._connection.text_factory = str
     self.cursor = self._connection.cursor()
     self._logger.info("Database connection to %s established." %
                       self._db_name)
     self._n = 0
     self.connected = True
 def __init__(self, filename="stocks.db", logger=None):
     super(SQLiteWrapper, self).__init__()
     self._db_name = filename
     if logger is None:
         self._logger = LogSubsystem(self.__class__.__name__, 'debug').getLog()
     else:
         self._logger = logger
     self._logger.info('Running sqlite python wrapper - version {} / {}'.format(sql.version, sql.sqlite_version))
     self._connection = sql.connect(self._db_name)
     self._connection.row_factory = sql.Row
     self._connection.text_factory = str
     self.cursor = self._connection.cursor()
     self._logger.info("Database connection to %s established." % self._db_name)
     self._n = 0
     self.connected = True