SqlQuery leifert falsche Anzahl Sätze

Alles rund um die Programmierung mit Qt
Antworten
toem
Beiträge: 124
Registriert: 17. März 2009 14:01

SqlQuery leifert falsche Anzahl Sätze

Beitrag von toem »

Guten Morgen Leute,

ich habe folgendes Problem. Ich habe unter SQLite 2 Tabellen angelegt und mit Daten gefüllt. Auf diese greife ich wie folgt zu:

Code: Alles auswählen

QSqlQuery query;
    query.exec("Select * from test");

    if (query.record().count() == 0)
....
oder

Code: Alles auswählen

QSqlQueryModel query;
    query.setQuery("Select * from [wwm_data]", db);
....
Mein Problem ist allerdings, das ich bei beiden Tabellen eine total falsche Anzahl Datensätze geliefert bekomme.

Tabelle test enthält 15 Sätze und ich bekomme 1.
Tabelle wwm_data enthält 27 Sätze und ich erhalte 7.

Übersehe ich etwas oder die Art der Abfrage in QT total falsch?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Du suchst QSqlQuery:.size() ...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
toem
Beiträge: 124
Registriert: 17. März 2009 14:01

Beitrag von toem »

Aber .size gibt mir -1 zurück.
Das kann aber doch auch nicht sein.
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

Unterstütz deine DB/Treiber?
Hatte das auch => lösung mach nen select count * rein whalweise als einzelne anfrage oder in die abfrage mit rein
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

toem hat geschrieben:Aber .size gibt mir -1 zurück.
Ein bischen nachschauen wäre nicht schlecht...
http://doc.trolltech.com/4.4/qsqldriver.html#hasFeature
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
toem
Beiträge: 124
Registriert: 17. März 2009 14:01

Beitrag von toem »

Ich hab was, das funktioniert anscheinend:

Code: Alles auswählen

QSqlQueryModel query;
    query.setQuery("Select * from [wwm_data]", db);
    if (query.rowCount() ....[quote][/quote]
palto
Beiträge: 4
Registriert: 28. März 2006 18:44

Beitrag von palto »

toem hat geschrieben:Ich hab was, das funktioniert anscheinend:

Code: Alles auswählen

QSqlQueryModel query;
    query.setQuery("Select * from [wwm_data]", db);
    if (query.rowCount() ....[quote][/quote]


Stimmt nicht immer!!
Du musst mit QSqlDriver::hasFeature() überprüfen ob rowCount unterstützt wird (siehe Dokumentation: http://doc.trolltech.com/4.5/qsqlquerym ... l#rowCount)
Antworten