Bonjour,
je crée une interface python QT (Sous XP, Python 2.5) me permettant simplement d'accéder à une table d'une DB Sqlite.
Je fais afficher mes données dans des champs (et non une table)
Dans ma classe j'ai ceci :
J'accède bien à mes données, mais jusqu'au 256e record et self.model.rowCount() me renvoie 256! Alors que j'ai bien 2000 records.
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 ... self.model=QtSql.QSqlTableModel(self) self.model.setTable("Clients") self.model.select() #print self.model.size() self.mapper = QtGui.QDataWidgetMapper(self) self.mapper.setSubmitPolicy(QtGui.QDataWidgetMapper.ManualSubmit) self.mapper.setModel(self.model) self.mapper.addMapping(self.lineEdit_Ref, 1) self.mapper.addMapping(self.lineEdit_NomAbr, 2) self.mapper.addMapping(self.lineEdit_Nom1, 3) self.mapper.addMapping(self.lineEdit_Nom2, 4) self.mapper.addMapping(self.lineEdit_Adresse, 5) ....
Après recherche, je trouve sur Google que la classe QSqlTableModel possede une methode fetchmore() permettant d'acceder à la prochaine suite de 256 records... et ne pas revenir en arriere semble t il..
Il semble que TableModel et DataWidgetMapper convienne mieux pour remplir une table , et nom des champs comme je le fais (par record).
Le but de l'utilisation de ces classes etait de lier simplement les champs de ma fenêtre aux données de la table.
Je me remets donc en question sur mon interface ,et vous demande comment je peux faire pour éviter de faire une requete (QSqlQuery) qui boucle et des setText() à tour de bras.
En gros comment faites vous dans vos projets avec PyQT et le Sql dans le cas de formulaire pour faire le lien entre les data et les champs d'une fenêtre?
Merci
Partager