QSqlQueryModel, Oracle, ODBC et tout le toutim
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:
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 :
- La requête est correcte
- 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