QSqlQuery

Alles rund um die Programmierung mit Qt
Antworten
redbulls
Beiträge: 59
Registriert: 27. März 2011 15:20

QSqlQuery

Beitrag von redbulls »

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
sehr interessiert an Qt
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: QSqlQuery

Beitrag von franzf »

Hilft dir nicht das SQL-Keyword "LIMIT"?
redbulls
Beiträge: 59
Registriert: 27. März 2011 15:20

Re: QSqlQuery

Beitrag von redbulls »

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.
sehr interessiert an Qt
redbulls
Beiträge: 59
Registriert: 27. März 2011 15:20

Re: QSqlQuery

Beitrag von redbulls »

weiß niemand, ob man das machen kann?
sehr interessiert an Qt
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: QSqlQuery

Beitrag von Christian81 »

Ein ordentlicher Datensatz hat eine Unique ID. Damit kann man auch queries bauen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
redbulls
Beiträge: 59
Registriert: 27. März 2011 15:20

Re: QSqlQuery

Beitrag von redbulls »

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.
sehr interessiert an Qt
Troll.Soft
Beiträge: 190
Registriert: 18. Juni 2008 09:52
Wohnort: Hamburg

Re: QSqlQuery

Beitrag von Troll.Soft »

redbulls hat geschrieben:Ich wollte nur wissen, ob die Lösung mit dem qsqlquery einen haken hat(im sinne von Datenbank quälen )
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!

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;
fand sich so bei http://www.club-oracle.com/forums/limit ... -sql-t637/
Das Order By kannst du sicherlich weglassen.
tschüß
Troll.Soft
Antworten