提交后未更新Python / Sqlite数据库但未返回错误

时间:2016-11-04 21:21:39

标签: python sqlite

我必须编写一个python脚本,如果在执行过程中出现问题,可以在某些特定点重新启动。为此,我有一个小数据库,我存储当前状态和序列化的复杂对象。 问题是更新状态的请求似乎没问题,但返回的'total_change'是0。回读后,它确认数据未写入数据库。这是代码:

def check_error(l_data,code):     全球国家     如果代码> 0:         process_error(l_data,state,code)

else:
    if state < 8:
        pdata = pickle.dumps(l_data, pickle.HIGHEST_PROTOCOL)
        # pointing to the next state to resume
        state += 1
        try:
            logger.info('Updating state database')
            conn = sqlite3.connect(state_database)
            conn.execute('''UPDATE state_table SET state=?, object=? WHERE name=?''', (state, sqlite3.Binary(pdata), l_data['name']))
            conn.commit()
            logger.info('Number of rows updated: %s', str(conn.total_changes))
        except sqlite3.Error as e:
            logger.error('Error writing state database: %s' % str(e))
            logging.shutdown()
            sys.exit(52)
        except sqlite3.OperationalError as e:
            logger.error('Error writing state database: %s' % str(e))
            logging.shutdown()
            sys.exit(52)
        finally:
            conn.close()

        logger.info('-- New state : %s --', str(state))

我正在使用我保存的对象的字段'name'来发出请求。 我真的坚持这个,我真的没有看到什么是错的: - / 提前谢谢!

0 个答案:

没有答案