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:
J'obtiens le résultat suivant:
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'ai également bien testé ma requête SQL, elle fonctionne correctement lorsque je l'exécute sur le serveur.
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)
Merci pour votre aide![]()
Partager