我是个Python和QT新手。我正试图用PyQT4做一个小应用,以监督我的家庭MySQL服务器,所以我的第一个想法是做经典的SHOW PROCESSLIST,解析它,并在一个漂亮的UI中显示。没什么大不了的,真的。
但出于某种原因,QtSql模块在执行此查询时不会返回任何内容,尽管它可以处理其他查询,如SHOW TABLES等。
我在一个谈论this1的邮件列表中找到了一条旧的(2002)消息,在MythTV code2中找到了一条引用,但没有一条消息解释得很清楚。
以下是一些代码:
db = QSqlDatabase.addDatabase('QMYSQL3') # tried with QMYSQL too
db.setHostName(host)
db.setDatabaseName(dbname)
db.setUserName(user)
db.setPassword(password)
db.open()
q = QSqlQuery(db)
q.exec_("SHOW PROCESSLIST")
print q.size() # returns -1!正如我所说的,它可以很好地处理其他查询(SELECT等)。
我做错了什么吗?谢谢!
1: lists.trolltech.com/qt-interest/2002-09/thread00104-0.html 2: www.google.com/codesearch/p?hl=es&sa=N&cd=1&ct=rc#-zNo3rQOo4A/mythtv/libs/libmyth/dbutil.cpp&l=657
发布于 2009-10-19 16:05:43
我不知道出了什么问题,但是在MySQL的最新版本中,您可以使用schema.processlist来解决这个问题
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST发布于 2011-06-01 11:15:09
我不知道你是否已经试过了,但是添加一个';‘怎么样?
q.exec_("SHOW PROCESSLIST;")我从未使用过QtSQL,但有些MySQL API确实有非常奇怪的行为,我以前也遇到过这个问题。
(因为碰到了一个老问题,这是我在寻找类似问题时提出来的)
https://stackoverflow.com/questions/1589231
复制相似问题