Bonjour à tous,

Je débute avec PyQt et je suis également nouveau sur le forum.

J'ai un problème pour afficher le résultat d'un select dans un QTableView
L'exemple que j'utilise ici est tiré de la doc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
# Requête SQL ultra-simple 
SQL = "select nprospect,cnom from prospect where nprospect=6631"
 
 
import sys
def connection():
    db = QtSql.QSqlDatabase.addDatabase('QODBC')
    connstr = "Driver={Microsoft ODBC for Oracle};CONNECTSTRING=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=...)(PORT=1521)))(CONNECT_DATA=(SID=dbtest)));Uid=....;Pwd=p....cvqtest;"
    db.setDatabaseName(connstr)
    if not db.open():
        QtGui.QMessageBox.critical(None, u'Ne peut ouvrir la database',
                u"J'ai rencontré un problème en essayant de me connecter à la base de données\n %s" % db.lastError().text(),
                QtGui.QMessageBox.Cancel)
        return False
    print db.tables()  # La connection est valide ! Preuve par la liste des tables
    return True
if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    if connection():
        model = QtSql.QSqlQueryModel()
        model.setQuery(SQL)
        view = QtGui.QTableView()
        view.setModel(model)
        view.setWindowTitle('Tester QtSql.QSqlQueryModel()')
        view.show()
Je précise deux choses :
  1. La requête est correcte
  2. Ma connexion fonctionne car j'obtiens la liste des tables


Pourtant la fenêtre ne me montre rien du tout et semble partir en boucle.

Quelqu'un a-t-il déjà rencontré ce problème ?

Merci d'avance pour vos réponses