2009-10-19 3 views
0

저는 파이썬과 QT 초보자입니다. 내 홈 MySQL 서버를 감독하기 위해 PyQT4로 약간의 응용 프로그램을 만들려고 노력하고있다. 그래서 나의 첫 번째 아이디어는 고전적인 SHOW PROCESSLIST을 분석하고 그것을 파싱하여 예쁜 UI로 보여 주었다. 큰 것은 없습니다. 이 쿼리를 수행 할 때이 SHOW TABLES 같은 다른 쿼리와 함께 작동하지만 QtSql (PyQT)을 사용하여 SHOW PROCESSLIST를 수행 할 수없는 이유는 무엇입니까?

그러나 어떤 이유로

는 QtSql 모듈은

내가 메일 링리스트에있는 오래 된 (2002) 메시지에 대해 이야기 발견 등, 아무 것도 반환하지 않습니다 이 [1]과 MythTV 코드 [2]의 참고 문헌이 있지만 그 중 누구도이를 분명히 설명하지 못합니다.

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 & 리터 = 657

답변

1

내가 잘못이지만, 당신이 할 수있는 MySQL의 최신 버전에 모르겠어요 information_schema.processlist을 사용하여 작업하십시오 :

SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST 
+0

어쨌든! –

0

이미 시도한 적이 있는지 모르겠지만 ';'을 추가하는 것은 어떨까요?

q.exec_("SHOW PROCESSLIST;") 

나는 QtSQL을 사용 해본 적이 없지만 일부 MySQL API는 상당히 이상한 동작을하기 때문에 이전에 그 문제에 부딪 혔습니다.

(SRY 오래된 질문을 해주 위해, 내가 유사한 문제를 검색 할 때 와서)의 5.1.x에 추가, 나는 적어도 5.0.x는 작업을해야하지만 감사 한