Problem bei Multiselect und vielen Datensätzen
-
- 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
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
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
-
- 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
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...
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/
-
- 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
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...
Ich kann es eindeutig Reproduzieren unter Ubuntu 8.04.1,
hast Du es ev. unter MS-Win probiert? Vielleicht gibt es da kein Problem...
-
- 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
noch als Ergänzung: Das gleiche Problem tritt auch mit DBF Tabellen auf.
Habe es als Bug gepostet.
Gruss,
Tibor
Habe es als Bug gepostet.
Gruss,
Tibor
-
- 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
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/
-
- 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
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...
Hab die Aplikation gerade mit der DBF Tabelle natürlich schnell parat...
-
- 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
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
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
-
- 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
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/
-
- 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
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
-
- 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
Ja, Vincent hat aber geschrieben er würde es in den Fixes Branch überführen.