Bonjour,

Je suis en train de me familiariser avec PyQt (Python 3 avec PyQt5). Pour les besoins de ma future application qui consistera à comparer des données fixes avec d'autres données extraites d'une BDD, je m'entraîne en faisant un programme simple:
J'aimerais me connecter à une BDD, faire une requête simple et l'afficher dans une fenêtre basique.

Pour l'instant, ça plante avec le code erreur suivant: Process finished with exit code -1073741819 (0xC0000005)

La connexion semble correcte. En cherchant à isoler le problème, il semblerait qu'il provienne de la ligne suivante: model.setQuery("SELECT AVION FROM POOL_AVION WHERE NUMERO= 5",db)

Voici mon code:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
 
from PyQt5.QtCore import *
from PyQt5.QtGui import QColor
from PyQt5.QtWidgets import *
from PyQt5.QtSql import *
 
 
def createConnection(db):
 
    db.setHostName("x.x.x.x")
    db.setPort(3306)
    db.setDatabaseName("DATABASE_NAME")
    db.setUserName("USER")
    db.setPassword("PASSWD")
    print("Etape 0")
 
    if not db.open():
        QMessageBox.critical(None, "Cannot open database",
                             str(db.lastError()),
                             QMessageBox.Cancel)
        return False
 
    print("1")
    return True
 
def initializeModel(model, db):
    print("2")
    model.setQuery("SELECT AVION FROM POOL_AVION WHERE NUMERO=5",db)
    print("3")
    model.setHeaderData(0, Qt.Horizontal, "AVION")
offset = 0
views = []
 
 
def createView(title, model):
    global offset, views
 
    view = QTableView()
    views.append(view)
    view.setModel(model)
    view.setWindowTitle(title)
    view.move(100 + offset, 100 + offset)
    offset += 20
    view.show()
 
if __name__ == '__main__':
 
    import sys
 
    app = QApplication(sys.argv)
    db = QSqlDatabase.addDatabase("QMYSQL")
 
    if not createConnection(db):
        sys.exit("Bloque à l'étape 1")
 
    plainModel = QSqlQueryModel()
 
    initializeModel(plainModel, db)
 
    createView("Plain Query Model", plainModel)
 
    sys.exit(app.exec_())
J'obtiens le résultat suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
"C:\Program Files\Python35\python.exe" C:/Users/test/PycharmProjects/untitled/TESTcoMYSQL.py
Etape 0
1
2
 
Process finished with exit code -1073741819 (0xC0000005)
J'ai également bien testé ma requête SQL, elle fonctionne correctement lorsque je l'exécute sur le serveur.


Merci pour votre aide