在循环的第一次迭代中,总是在python SQL中出现“未读结果”错误

Always getting "unread result found" error in python SQL in first iteration of loop

提问人:Chauhan Mukesh 提问时间:6/25/2023 最后编辑:Chauhan Mukesh 更新时间:6/25/2023 访问量:75

问:

我正在使用 mysql-connector-python 8.0.33 和 tring 使用以下代码从数据库中获取所有记录。

def retrieve_records():
    try:
        cursor = conn.cursor(buffered= True)
        cursor.execute(f"SELECT * FROM {scanner.table_name}")
        records = cursor.fetchall()
        tree.delete(*tree.get_children())

        for record in records:
            tree.insert("", "end", values=record)

        while cursor.nextset():
            pass  # Consume any remaining unread result sets

        cursor.close()
    except mysql.connector.Error as err:
        messagebox.showerror("Error", f"An error occurred while retrieving the records: {err}")

我在循环中调用以下函数,但有一个问题。每次我运行程序并且第一次执行循环时,每次都会遇到未读结果发现错误。简而言之,它在每次第一次迭代中都会进入异常块。

enter image description here

基本上,我的程序扫描二维码并将其存储到数据库中,并在UI上以json解码格式显示数据,这里有一个功能,如果数据库中已经有数据,它应该首先将其加载到列表中。但是它不起作用,如上所述,它会产生错误。

Traceback (most recent call last):
  File "C:\Users\Credencys\Desktop\qr\app.py", line 196, in <module>
    retrieve_records()
  File "C:\Users\Credencys\Desktop\qr\app.py", line 99, in retrieve_records
    cursor = conn.cursor()
             ^^^^^^^^^^^^^
  File "C:\Users\Credencys\AppData\Local\Programs\Python\Python311\Lib\site-packages\mysql\connector\connection_cext.py", line 676, in cursor       
    self.handle_unread_result(prepared)
  File "C:\Users\Credencys\AppData\Local\Programs\Python\Python311\Lib\site-packages\mysql\connector\connection_cext.py", line 932, in handle_unread_result
    raise InternalError("Unread result found")
mysql.connector.errors.InternalError: Unread result found

删除 try catch 获取以下跟踪和 Open-cv 后,我在使用 open-cv 的程序中使用此函数。

异常 mysql-connector-python

评论

0赞 Tim Roberts 6/25/2023
你确定错误来自这个确切的代码吗?因为调用本身就足以关闭此错误。 是不必要的;您在这里只有一个 SELECT。fetchallnextset
0赞 stateMachine 6/25/2023
为什么选择 OpenCV 标签?
0赞 Tim Roberts 6/25/2023
如果注释掉 和 ,它在哪里失败?是在 还是 ?tryexceptexecuteclose
0赞 Chauhan Mukesh 6/25/2023
更新的问题请检查
0赞 Tim Roberts 6/25/2023
您的回溯没有该参数。无论如何,在运行此数据库之前,您是否正在执行其他数据库访问?如果你的问题与OpenCV无关(事实并非如此),那么不要包含标签。buffered=True

答: 暂无答案