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?
in dieser Zeile wird schon ein invalider Model Index zurückgeliefert. Row und Col im ModelIndex stehen auf -1. Der rowCount() des Models liefert aber den richtigen Wert
Rätselhaft ?????
PseudoCode
void myClass::workAround()
{
if ( SQLITE ) {
for ( int I = 0; I <= model()->rowCount() / 256; I++ )
tableView()->scrollToBottom();
tableView()->scrollToTop();
}
}
Würde gerne Eure Meinungen hierzu hören.
Also ich habe ein TableModel und zwei Views. Ein TableView und ein RecordView. Benutze mal mySql mal SQLite. Unter mySql ist immer alles ok. Unter SQLite und dem TableView ist auch immer alles ok. Benutze ich aber SQLite und RecordView stehen nur in den ersten 256 Rows Daten. Die restlichen Rows existieren offenbar, denn model()->rowCount() liefert den korrekten Wert. Zugriffe liefern nur QVariant::invalid. Ein beherzter tableView()->scrollToBottom() und weitere 256 also 512 Rows sind im Zugriff. Wohlgemerkt nur bei SQLite, bei mySql ist alles in Butter.