在while循环中执行同一个查询语句,没有参数,数据库中发生变化后,查询结果不是最新的。当查询语句中带参数时,不添加commit()也是可以准确查询的。
col, ctp_data = self.sql_ctp_db.SelectAll(ctp_sql) #结果一直不变
在下面函数中添加self.conn.commit()能解决查询结果不变的问题
def SelectAll(self, sql='', param=()): columns = [] result = None if None in [self.conn, self.cur]: return columns, result count = 0 try: if len(param) < 1: count = self.cur.execute(sql) else: count = self.cur.execute(sql, param) if count > 0: result = self.cur.fetchall() else: result = None desc = self.cur.description self.conn.commit() columns = [col[0] for col in desc] except (Exception, KeyboardInterrupt) as e: print(e) columns = [] return columns, result