[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pykde
Subject:    [PyQt] QSqlRelationalModel and setFilter
From:       Simone <simozack () yahoo ! it>
Date:       2008-02-27 16:56:35
Message-ID: 47C59643.7000905 () yahoo ! it
[Download RAW message or body]

I'm experimenting problem with QSqlRelationalModel and the setFilter method.

I don't speak (write) English very well, so I made this snippet that 
shows the problem.

The database has 3 tables ('tipo_documento', 'tipi' and 'causale'). The 
table "tipo_documento" has the foreign key reference to the table 'tipi' 
and 'causale' on their id field (many to one relationship with both the 
table "tipi" and the table "causale").

from PyQt4.QtSql import *
from PyQt4.QtCore import *

db = QSqlDatabase.addDatabase("QSQLITE")
db.setDatabaseName('./db')
db.open()
model = QSqlRelationalTableModel()

model.setTable("tipo_documento")
model.setRelation(2, QSqlRelation("causale", 'id', 'descrizione'))
model.setRelation(3, QSqlRelation("tipi", 'id', 'descrizione'))
model.setFilter(QString('descrizione like "%1"').arg('%'))
model.reset()
model.select()
print model.rowCount()

The result of the last print is '0'. But if I comment the rows 
containing model.setRelation(), the result of this query is 1 as 
expected. Note that the filter is in a field that hasn't any external 
relations with other table.
The relations, also, are right because in the rest of the program I'm 
writing, I have a QTableView that shows correctly the description of the 
foreing key.

I'm using Python 2.5.2 (but this happens also with 2.5.1), PyQt4 version 
4.3.3 on WinXp SP2.

Thank you very much,
Simone
Chiacchiera con i tuoi amici in tempo reale! 
 http://it.yahoo.com/mail_it/foot/*http://it.messenger.yahoo.com 

_______________________________________________
PyQt mailing list    PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic