[PyQt] QSqlQueryModel write subclass
Linos
info at linos.es
Fri Oct 12 00:03:21 BST 2007
Hello,
i am trying to subclass QSqlQueryModel to write with it, i need this because not qsqltablemodel or
qsqlrelationaltablemodel fills my needs, i would like to do joins and insert in multiple tables, i have
implemented "flags" and "setData" methods and it works ok now, i have made a "refresh" method to reload the
contents on update because tableView not reload them with datachanged signal and all works ok but now i am
trying to implement insertrow or insertrows without luck, this is the code i am using now:
this in model:
def insertRows(self, position, rows=1, index=QModelIndex()):
self.beginInsertRows(QModelIndex(), position, position + rows - 1)
setdataquery = QSqlQuery(self.cursor)
setdataquery.exec_(QString("INSERT INTO SCHEMA.FAKE (FAKE1, FAKE2, FAKE3) VALUES (4, 2, 'PEPITO')"))
self.endInsertRows()
self.dirty = True
return True
this in qdialog:
def addRecord(self):
row = self.querymodel.rowCount()
self.querymodel.insertRows(row)
index = self.querymodel.index(row, 0)
self.tableView.setCurrentIndex(index)
self.tableView.edit(index)
After execute this method i can view the new row in table view but i get this in stdout.
edit: index was invalid
edit: editing failed
I have test the row number rowCount() assign and it is ok, i dont know how to fix this, anyone can help me please?
PD: I get original snippet and the idea about subclass QSqlQueryModel in the really excellent book "Rapid GUI
Development with Python-PyQT".
More information about the PyQt
mailing list