AW: Table Filter
werde es gleich mal mit einer Query Komponente versuchen!
|
AW: Table Filter
Hallo,
die Heidi, oh Gott, Maria ;) |
AW: Table Filter
versuch doch mal bitte
Code:
Gruß
Form1.Table_Einsaetze_Event.Filter := 'EINSATZNUMMER LIKE ''12345%'' ';
K-H |
AW: Table Filter
Beim Suchen bin ich auf diesen Tread gestoßen: http://www.delphipraxis.net/188464-q...in-dbgrid.html
Daraus schließe ich erstmal, dass Filter bei der Datenbank grundsätzlich erstmal einsetzbar sind. Bei diesem Filter
Delphi-Quellcode:
kann ich keinen syntaktischen Fehler erkennen.
Form1.Table_Einsaetze_Event.Filter := 'EINSATZNUMMER = "42" '
Also bleiben nur noch Datenfehler übrig. (Oder Fehler von ganz woanders her, die nur zufällig bei dem Setzen von Filtern "hochblubbern"). Dazu möchte ich (erstmal) wissen: Ist Einsatznummer immer gefüllt? Wieviele Datensätze hast Du in der Datenbank? Kannst Du prüfen, ob alle Werte der Einsatznummer korrekt, d. h. spezifikationsgerecht, befüllt sind? Kann die Einsatznummer auch leer sein? Nun wird's spekulativ: Trenne mal die Anzeigekomponenten von der Datenbankkomponente. Vermutlich hast Du ja Table_Einsaetze_Event irgendwo 'ner TDatasource (oder so) zugewiesen. Lässt sich der Filter dann setzen? Wenn ja, verschluckt sich irgendeine Komponenten, sobald ein Filter gesetzt wird, aber der Filter ist nicht das Problem. Bleibt der Fehler bestehen, muss es irgendwo in den Daten oder bei der Tabellenkomponente oder der Datenbank ein Problem geben. Kannst Du den ganzen "Spass" mal debuggen? Breakpoint auf die Zeile, in der der Filter befüllt wird und von da aus dann schrittweise in alles reinsteppen, was da so ausgeführt wird. Wo "landest" Du, wenn die Exception ausgelöst wird? Eventuell kann man dann von da aus (etwas zielgerichteter) weitersuchen. |
AW: Table Filter
Vielleicht stehen auch Leerzeichen im String. Versuch den mal zu Trimmen.
|
AW: Table Filter
Zitat:
Zitat:
@mkinzler angeblich sind in der DB nur 10stellige Ziffernfolgen enthalten, da ist dann wohl kein Platz für ein Blank. "42" passt da allerdings auch nicht, "0000000042" wäre da schon besser. Gruß K-H |
AW: Table Filter
Also dieses Filter-Gedöns wird von
Delphi-Quellcode:
zwar eingeführt, ist aber nur virtuell.
TDataSet
Das Setzen der
Delphi-Quellcode:
-Eigenschaft setzt auch nicht die Eigenschaft
Filter
Delphi-Quellcode:
gesichert wieder auf
Filtered
Delphi-Quellcode:
. Jedenfalls passiert das nicht in
false
Delphi-Quellcode:
.
TDataSet
Jede Ableitung von
Delphi-Quellcode:
muss sich also selber darum kümmern, ob und wenn ja wie sie sich darum kümmert. Daran hängt eben auch, wie die Syntax des Filter-Texts sein muss.
TDataSet
Kann man z.B. im Source von TClientDataSet.SetFilterText sehen. Pauschale Aussagen zum Thema TDataSet.Filter, TDataSet.Filtered erschöpfen sich also darin, dass es diese Eigenschaften gibt und dass es auch Komponenten gibt, bei denen man diese Eigenschaften sinnvoll zum Filtern verwenden kann. Und selbst TDataSet.OnFilterRecord muss von den abgeleiteten Klassen implementiert werden, damit sich da überhaupt etwas regt. Ein Blick auf die Historie von mydac zeigt einem auch so einige Einträge bzgl. der Filter-Eigenschaft Zitat:
|
AW: Table Filter
Zitat:
"42" geht ebenso wie " 42" oder " 42 " und "0000000042". Aber das heißt ja noch nichts. Wenn es irgendwo in der Applikation eine Stelle gibt, an der dieses VarChar(10) nur aus Ziffern bestehen darf, aber dann, zufällig beim Setzen dieses Filters, etwas anderes bekommt, als diese (genau oder maximal?) zehn Ziffern, so mag dann dort irgendwo genau diese Fehlermeldung draus resultieren. Ohne genauere Kenntnis der "Datenlage" und dessen, was die Applikation damit macht, scheint mir momentan eine zielgerichtete Fehlersuche kaum möglich. Allgemein läßt die Fehlermeldung eher darauf schließen, dass hier irgendein Wert, an dem wir beim Filtern vorbeikommen, größer oder kleiner als der kleinste bzw. größte zulässige Wert ist. Eventuell ist auch für "irgendetwas" der "getroffene Wert" kleiner oder größer als der kleinste bzw. der größte Wert für einen Index (Array, Liste, ..., wasweißdergeier) |
AW: Table Filter
Zitat:
Und dann, nach Kenntnis der vorhandenen Daten, den Filter zu definieren. Gruß K-H |
AW: Table Filter
Hallo,
vielleicht wird das varchar ja als char interpretiert von der JosefDB ( ;) ). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:19 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