Hallo
Wenn ich in einer Datenbank eine große Datenmenge abfrage, kommen z.b 20000 Datensätze zurück. Ich will in meiner Tabelle aber nur
10000 anzeigen und die anderen 10000 nur bei Bedarf.
Ist es sinnvoll, wenn man den QSqlQuery nach dem exec an die Klasse zurückgibt und sie dann bestimmt wann und wieviele Daten ausgelesen werden.
Oder sollte man das anders lösen?
danke
QSqlQuery
Re: QSqlQuery
Hilft dir nicht das SQL-Keyword "LIMIT"?
Re: QSqlQuery
Danke für die Antwort
Unter oracle z.B gibts kein LIMIT(es gibt zwar einen workaround, aber das möchte ich nicht) und ich weiß ja nicht bei welchem datensatz ich stehen geblieben bin, weil ich kein order by verwende.
ich möchte alle Daten bekommen, diese aber nach bedarf anzeigen.
Unter oracle z.B gibts kein LIMIT(es gibt zwar einen workaround, aber das möchte ich nicht) und ich weiß ja nicht bei welchem datensatz ich stehen geblieben bin, weil ich kein order by verwende.
ich möchte alle Daten bekommen, diese aber nach bedarf anzeigen.
sehr interessiert an Qt
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: QSqlQuery
Ein ordentlicher Datensatz hat eine Unique ID. Damit kann man auch queries bauen.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Re: QSqlQuery
Ich möchte das query aber nur einmal absetzen und alle Daten im Speicher halten.
Ich wollte nur wissen, ob die Lösung mit dem qsqlquery einen haken hat(im sinne von Datenbank quälen ) . Wenn Ja könnte ich mir einen anderen Behälter
bauen.
Ich wollte nur wissen, ob die Lösung mit dem qsqlquery einen haken hat(im sinne von Datenbank quälen ) . Wenn Ja könnte ich mir einen anderen Behälter
bauen.
sehr interessiert an Qt
-
Troll.Soft
- Beiträge: 190
- Registriert: 18. Juni 2008 09:52
- Wohnort: Hamburg
Re: QSqlQuery
Deine Lösung hat natürlich einen Haken. Du quälst nicht nur die Datenbank sondern besonders Dein Programm, wenn z.B.: 2 Millionen Records zurückkommen. Speichermangel, Game over!redbulls hat geschrieben:Ich wollte nur wissen, ob die Lösung mit dem qsqlquery einen haken hat(im sinne von Datenbank quälen )
Habe mal neugierig gegoogelt. Oracle kennt ein limit Konstrukt. Ist nur ein Tick umständlicher als mySql.
Code: Alles auswählen
SELECT f_name, l_name, age
FROM
( SELECT f_name, l_name, age, ROWNUM r
FROM
( SELECT f_name, l_name, age FROM employee_data
ORDER BY age DESC
)
WHERE ROWNUM <= 40
)
WHERE r >= 21;Das Order By kannst du sicherlich weglassen.
tschüß
Troll.Soft