seltsame Reaktion von QSqlTableModel wenn SQLite[workaround]
Verfasst: 26. November 2010 16:04
Hallo,
ich benutze QSqlTableModel, habe eine eigene Klasse davon abgeleitet und benutze diese. Unter mySql alles ok. Unter SQLite alles ok, wenn weniger als 256 Records. Ab 256 Records liefert das TableModel für jede Spalte nur noch QVariant::Invalid zurück. Setze ich das darunterliegende Query mit seek auf einen Wert > 256 und hole per value(..) Daten, erhalte ich immer noch die erwarteten Werte.
Wie bringe ich das Modell auch unter SQLite zum Laufen?
bin für jeden Tip dankbar
tschüß
Troll.Soft
ich benutze QSqlTableModel, habe eine eigene Klasse davon abgeleitet und benutze diese. Unter mySql alles ok. Unter SQLite alles ok, wenn weniger als 256 Records. Ab 256 Records liefert das TableModel für jede Spalte nur noch QVariant::Invalid zurück. Setze ich das darunterliegende Query mit seek auf einen Wert > 256 und hole per value(..) Daten, erhalte ich immer noch die erwarteten Werte.
Wie bringe ich das Modell auch unter SQLite zum Laufen?
Code: Alles auswählen
bool myQSqlTableModel::select ( QString Select )
{
bool RetVal = Query.exec(Select);
QSqlTableModel::setQuery(Query);
RowCount = Query.size();
if ( SQLITE )
if ( Query.first() ) {
RowCount = 1;
while ( Query.next() )
RowCount++;
}
int Key = 4711;
Key = QSqlTableModel::data(index(255, 0), Qt::DisplayRole ).toInt(); // liefert den erwarteten Wert
Key = QSqlTableModel::data(index(256, 0), Qt::DisplayRole ).toInt(); // liefert QVariant::Invalid
Query.seek(256);
Key = Query.value(0).toInt(); // liefert den erwarteten Wert
return RetVal;
}
tschüß
Troll.Soft