Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi kbmMemTable und TDBAdvGrid (https://www.delphipraxis.net/182583-kbmmemtable-und-tdbadvgrid.html)

DelTurbo 3. Nov 2014 10:27

Datenbank: MySql • Version: 5 • Zugriff über: UniDac

kbmMemTable und TDBAdvGrid
 
Hallo,

ich lese Datensätze per Query in kbmMemTable ein. Ich habe gemerkt das kbmMemTable wesentlich schneller ist als TClientDataSet. Da ich die Daten nur im Speicher nutze ist das wohl das beste.

Sortieren klappt einwandfrei. Was nicht geht, ist der Filter, also wenn ich das suche. Setze ich Filtered auf True rennt er durch OnFilterRecord wo ich sagen kann ob der Datensatz zum anzeigen gebraucht wird oder nicht. So hatte ich das auch beim ClientDataSet gemacht.

Leider bleibt nun beim Filtern das DBAdvGrid leer.

Als ich das mit ClientDataSet gemacht habe, musste ich bei jeder Änderung die Sachen in einen Stream speichern und wieder Laden. Danach hat er es angezeigt. (Hatte ich irgendwo in einem Forum gelesen das man das machen muss) Leider klappt das nicht beim kbmMemTable. bzw. wird beim Sortieren nicht gebraucht. Er zeigt die Daten ohne diesen Umweg an.

Die Sortierung wird sofort angezeigt. Ich muss nur ein DBAdvGrid.UpdateDisplay machen. Das klappt einwandfrei.

Nun zur frage: Warum zeigt er mir die gefilterten Daten nicht an? Was muss ich machen damit er mit die auch anzeigt? Ein DBAdvGrid.UpdateDisplay bringt keine Änderung. Das Grid bleibt leer.

Vielen dank im voraus

DelTurbo 3. Nov 2014 11:14

AW: kbmMemTable und TDBAdvGrid
 
Ich habe gerade festgestellt das kbmMemTable nach dem setzen von Filtered auf True leer ist?!?

Nun bin ich verwirrt. Dann kann das Grid ja auch nix anzeigen.

Da mache ich wohl was beim Filtern falsch. Aber was?

mkinzler 3. Nov 2014 11:18

AW: kbmMemTable und TDBAdvGrid
 
Funktioniert die Anziege in einem Standard DBGrid?

DelTurbo 3. Nov 2014 11:36

AW: kbmMemTable und TDBAdvGrid
 
Grade probiert. Nein geht nicht. Was soll es auch anzeigen wenn kbmMemTable leer ist. Irgendwas mache ich wohl falsch beim Filtern/Suchen.

Ich mache es wie folgt:
In OnFilterRecord ist eine Abfrage die Accept auf True oder False setzt. Je nachdem ob der Datensatz angezeigt werden soll oder nicht.

Um das zu Filtern setze ich Filtered auf True.

Ich speicher kbmMemTable einmal vor Filtered True ab, und einmal danach. Danach sind in der Datei nur noch die Felder. Keinerlei Daten mehr.

mkinzler 3. Nov 2014 11:37

AW: kbmMemTable und TDBAdvGrid
 
Die Filterbedingung gehört in
Delphi-Quellcode:
<DataSet>.Filter := '<Filterbedingung>';

DelTurbo 3. Nov 2014 11:49

AW: kbmMemTable und TDBAdvGrid
 
Damit bin ich grade am "Kämpfen". Da man das beim ClientDataSet nicht brauchte, weiß ich gar nicht was ich da reinschreiben soll.

Ich habe z.b. eine Spalte Ort. Nun wollte ich mir alles on Bonn ausgeben lassen. Filter:='Ort=Bonn' klappt aber nicht. Er sagt das er das Feld Bonn nicht finden würde.

Und was mache ich mit OnFilterRecord? Nicht mehr nutzen?

Danke im voraus

mikhal 3. Nov 2014 11:51

AW: kbmMemTable und TDBAdvGrid
 
Da fehlen die Quotes: 'Bonn'

Grüße
Mikhal

DelTurbo 3. Nov 2014 12:00

AW: kbmMemTable und TDBAdvGrid
 
Dann kommt zwar kein Fehler, trotzdem ist kbmMemTable danach leer. Da ich noch in OnFilterRecord bin, habe ich dort einfach Accept=True reingemacht. Also da wird nix mehr gefiltert.

Was ich nicht verstehe ist, das die Table danach leer ist. Nur durch setzen Filtered auf True.

mkinzler 3. Nov 2014 12:02

AW: kbmMemTable und TDBAdvGrid
 
Beim Aktivieren werden die Daten anhand des Filters gefiltet. Ist dieser leer ist auch das Ergebnis leer.

DelTurbo 3. Nov 2014 12:11

AW: kbmMemTable und TDBAdvGrid
 
Leider bleibt es leer, auch wenn ich Filtered wieder auf False setze. Ich habe bei OnFilterRecord nachgesehen. Dort kommt jede Zeile durch. Aber nur beim ersten mal. Danach nicht mehr, da memTable keine Daten mehr hat. Nur noch die Felder.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:30 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz