Problem bei Multiselect und vielen Datensätzen

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
piper62
Beiträge: 131
Registriert: Sa 5. Apr 2008, 17:57
OS, Lazarus, FPC: Linux (Debian, Xubuntu), MacOS X, MS Win, Android, Web
CPU-Target: 32Bit/64Bit
Wohnort: Ulm

Problem bei Multiselect und vielen Datensätzen

Beitrag von piper62 »

Hallo,

ich denke ich habe einen Bug gefunden aber zur Sicherheit und auch weil die internationale Seite nicht erreichbar ist werfe ich es erst einmal Euch "vor die Füße".

Es handelt sich um ein Problem welches ich mit der neuen Version von FPC (2.2.2) und Lazarus (0.9.26) mit Zeos (6.6.3) bekommen habe. Mit den Versionen FPC (2.0.4), Lazarus (0.9.22/.24) und Zeos 6.6.1 war es noch nicht da.

Man nehme:
-Eine Form, darauf dann ZConnection, ZQuery -> Verbindung zur DB herstellen und mit DataSource an ein DBGrid verbinden.
-das DBGrid wird auf "Multiselect=True" und "MultiselectPersistent=True" gestellt.

Es sei in unserem Fall eine Personen Tabelle, die einfach über "select * from person limit 1000" abgefragt wird.
Wenn nun das PRG gestartet wird kan man über die Kombination "Strg-li. Maustaste" einen Datensatz selektieren.
Das geht auch wunderbar wenn man nicht ans Ende der Tabelle scrollt.
Wenn am Ende der Tabelle - z.B. der letzte Datenssatz selektiert wird, hat man gnaz schnell GANZ VIELE Datensätze selektiert. Bei Abfrage der Selection.Count gibt es aber nur EINEN! ???

Das Ganze ist abhängig von der Anzahl der Datensätze die in dem Resultset sind.
Es geht los ab 129 (!) Datensätzen, dann werden bei Selektion des letzten Records nicht nur dieser sondern auch der Vorletzte selektiert.

Hat das schon mal Jemand gehabt? Weiss Jemand eine Lösung?

Gruss,
Tibor

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Problem bei Multiselect und vielen Datensätzen

Beitrag von Christian »

Ich kanns nicht nachvollziehen.
Was ich getan hab:
Ein Resultset mit über 1000 Datensätzen genommen.
Alle markiert.
Die letzten 10 demarkiert.
Wild rummarkiert: scheint alles ok zu sein...
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

piper62
Beiträge: 131
Registriert: Sa 5. Apr 2008, 17:57
OS, Lazarus, FPC: Linux (Debian, Xubuntu), MacOS X, MS Win, Android, Web
CPU-Target: 32Bit/64Bit
Wohnort: Ulm

Re: Problem bei Multiselect und vielen Datensätzen

Beitrag von piper62 »

markier mal nur den letzten Record.
Ich kann es eindeutig Reproduzieren unter Ubuntu 8.04.1,
hast Du es ev. unter MS-Win probiert? Vielleicht gibt es da kein Problem...

piper62
Beiträge: 131
Registriert: Sa 5. Apr 2008, 17:57
OS, Lazarus, FPC: Linux (Debian, Xubuntu), MacOS X, MS Win, Android, Web
CPU-Target: 32Bit/64Bit
Wohnort: Ulm

Re: Problem bei Multiselect und vielen Datensätzen

Beitrag von piper62 »

noch als Ergänzung: Das gleiche Problem tritt auch mit DBF Tabellen auf.
Habe es als Bug gepostet.

Gruss,
Tibor

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Problem bei Multiselect und vielen Datensätzen

Beitrag von Christian »

Wenn du eine kleine Beispiel App dazu tust sind solche sachen eigentlich immer sher schnell gefixt. Gerade mr rays is da immer sehr hinterher.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

piper62
Beiträge: 131
Registriert: Sa 5. Apr 2008, 17:57
OS, Lazarus, FPC: Linux (Debian, Xubuntu), MacOS X, MS Win, Android, Web
CPU-Target: 32Bit/64Bit
Wohnort: Ulm

Re: Problem bei Multiselect und vielen Datensätzen

Beitrag von piper62 »

mal sehen, mache ich dann wenn danach gefragt wird. Ich denke es sollte so auch erst einmal reichen.
Hab die Aplikation gerade mit der DBF Tabelle natürlich schnell parat...

piper62
Beiträge: 131
Registriert: Sa 5. Apr 2008, 17:57
OS, Lazarus, FPC: Linux (Debian, Xubuntu), MacOS X, MS Win, Android, Web
CPU-Target: 32Bit/64Bit
Wohnort: Ulm

Re: Problem bei Multiselect und vielen Datensätzen

Beitrag von piper62 »

Zur Info:
Das Problem ist gelöst. Lag an der dbgrids.pas im LCL Verzeichnis von Lazarus.
Allerdings ist es nur in der Version: lazarus-0.9.27-17133-20081026-src.zip und damit im Development-Branch gefixt.
Der aktuelle Stable (lazarus-0.9.26.1-17133-20081026-src.zip) hat den Fehler noch.

Ich habe es jetzt umgangen indem ich die dbgrids.pas aus der 0.9.27 in die 0.9.26.1 kopiert habe. Geht einwandfrei.

Ich möchte in unserem Projekt vorzugsweise mit einem stable Branch arbeiten, nur leider scheint der nicht so im Fokus zu liegen.

Gruss,
Piper

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Problem bei Multiselect und vielen Datensätzen

Beitrag von Christian »

Das ist schon richtig so, wenn sich jemand findet der alle Fehler zurück in den Stable Branch portiert, diesen tested und das release updatet was pro Fehler schätzungsweise eine Woche Arbeit wäre sind die Lazarus Developer sicher glücklich. Solang es aber niemanden mit solch enormer Langerweile gibt wird man für Fixes auf die nächste Stable warten müssen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: Problem bei Multiselect und vielen Datensätzen

Beitrag von monta »

Aber es gibt doch noch den Fixes-Branch, wo etliche Revisionen aus dem trunk rein 'gemergt' werden. Hab gestern mal nachgeschaut, pipers Problem wurde in der Revision 17130 behoben, diese Revision ist aber nicht in den fixes-branch übernohmen wurden, zumindest nicht bis gestern.
Johannes

piper62
Beiträge: 131
Registriert: Sa 5. Apr 2008, 17:57
OS, Lazarus, FPC: Linux (Debian, Xubuntu), MacOS X, MS Win, Android, Web
CPU-Target: 32Bit/64Bit
Wohnort: Ulm

Re: Problem bei Multiselect und vielen Datensätzen

Beitrag von piper62 »

Ja, Vincent hat aber geschrieben er würde es in den Fixes Branch überführen.

Antworten