AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi kbmMemTable und TDBAdvGrid
Thema durchsuchen
Ansicht
Themen-Optionen

kbmMemTable und TDBAdvGrid

Ein Thema von DelTurbo · begonnen am 3. Nov 2014 · letzter Beitrag vom 20. Mär 2017
Antwort Antwort
Seite 1 von 2  1 2      
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#1

kbmMemTable und TDBAdvGrid

  Alt 3. Nov 2014, 11:27
Datenbank: MySql • Version: 5 • Zugriff über: UniDac
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
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#2

AW: kbmMemTable und TDBAdvGrid

  Alt 3. Nov 2014, 12:14
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?
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: kbmMemTable und TDBAdvGrid

  Alt 3. Nov 2014, 12:18
Funktioniert die Anziege in einem Standard DBGrid?
Markus Kinzler
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#4

AW: kbmMemTable und TDBAdvGrid

  Alt 3. Nov 2014, 12:36
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.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: kbmMemTable und TDBAdvGrid

  Alt 3. Nov 2014, 12:37
Die Filterbedingung gehört in <DataSet>.Filter := '<Filterbedingung>';
Markus Kinzler
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#6

AW: kbmMemTable und TDBAdvGrid

  Alt 3. Nov 2014, 12:49
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
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: kbmMemTable und TDBAdvGrid

  Alt 3. Nov 2014, 12:51
Da fehlen die Quotes: 'Bonn'

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#8

AW: kbmMemTable und TDBAdvGrid

  Alt 3. Nov 2014, 13:00
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.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: kbmMemTable und TDBAdvGrid

  Alt 3. Nov 2014, 13:02
Beim Aktivieren werden die Daten anhand des Filters gefiltet. Ist dieser leer ist auch das Ergebnis leer.
Markus Kinzler
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#10

AW: kbmMemTable und TDBAdvGrid

  Alt 3. Nov 2014, 13:11
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 meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:50 Uhr.
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