SQLITE: Erster Datensatz fehlt im QTableWidget (gelöst)
Verfasst: 22. März 2013 16:57
Hallo,
ich möchte die Datensätze eines SQLite SELECTs in einem QTableWidget ausgeben lassen.
Problem
Im TableWidget fehlt der 1. Wert aus dem Datensatz und die letzte Zeile bleibt leer.
SOLL
1
2
3
4
IST
2
3
4
leer
Der SELECT gibt die richtigen und vor allem ALLE Werte zurück, das habe ich schon geprüft.
Das Problem liegt also hier in meinem QT-Code.
Zum Code:
Ich muss zunächst einmal durch die Datensätze gehen, um zu zählen, wie viele Zeilen das TableWidget generieren soll.
Danach mache ich wieder queryZutaten.first(), um zurück zum 1.Datensatz für die Ausgabe der eigentlichen Inhalte zu kommen.
Lasse ich das Durchzählen vorher weg und setze zaehl statisch auf die richtige Zahl (11), dann habe ich das Problem nicht und alle Werte werden richtig vollständig ausgegeben.
Kann mir jemand helfen?
ich möchte die Datensätze eines SQLite SELECTs in einem QTableWidget ausgeben lassen.
Problem
Im TableWidget fehlt der 1. Wert aus dem Datensatz und die letzte Zeile bleibt leer.
SOLL
1
2
3
4
IST
2
3
4
leer
Der SELECT gibt die richtigen und vor allem ALLE Werte zurück, das habe ich schon geprüft.
Das Problem liegt also hier in meinem QT-Code.
Zum Code:
Ich muss zunächst einmal durch die Datensätze gehen, um zu zählen, wie viele Zeilen das TableWidget generieren soll.
Danach mache ich wieder queryZutaten.first(), um zurück zum 1.Datensatz für die Ausgabe der eigentlichen Inhalte zu kommen.
Lasse ich das Durchzählen vorher weg und setze zaehl statisch auf die richtige Zahl (11), dann habe ich das Problem nicht und alle Werte werden richtig vollständig ausgegeben.
Code: Alles auswählen
//Schleife zum Zählen der Datensätze
int zaehl=0;
while(queryZutaten.next())
{
zaehl++;
}
//QTableWidget
ui->twZutaten->setRowCount(zaehl);
QStringList strl;
strl<<tr("Menge")<<tr("Einheit")<<tr("Name")<<tr("Zusatz");
ui->twZutaten->setHorizontalHeaderLabels(strl);
QSqlRecord sqlrec=queryZutaten.record();
ui->twZutaten->setColumnCount(sqlrec.count());
//Zutaten ausgeben im QTableWidget
if(queryZutaten.isActive())
{
int a=0;
queryZutaten.first();
while(queryZutaten.next())
{
for(int i=0;i<4;i++)
{
QTableWidgetItem *itm = new QTableWidgetItem();
itm->setText(queryZutaten.value(i).toString());
ui->twZutaten->setItem(a,i,itm);
}
a++;
}
}