![]() |
Datenbank: dBase • Version: f. Windows • Zugriff über: BDE
D7 Table filter mit Substring
Hi zusammen,
ich such seit Stunden im Internet, aber alle Angebote bringen nur Fehlermeldungen. Ich möchte ganz einfach z.B. in einem DBGrid nach Substring *test* filtern. Mit Filter z.B: Table1.Filter:='DFName=''PC*'''; funktionierte, aber warum nicht mit Table1.Filter:='DFName=''*PC*''' ?? Ich möchte ganz einfach nach Substring filtern können. Kann mir bitte jemand helfen? Vielen Dank für jede Tip... Gruß beanbear |
AW: D7 Table filter mit Substring
Zwar kenne ich Dbase nur vom Hörensagen, weiß aber dennoch, daß Datenbanken nicht den Asterix * als Platzhalter verwenden, sondernd das Prozentzeichen % als Platzhalter dient. Zudem wird eine Suche mit Platzhalter nicht über das Gleichheitszeichen = eingeleitet, sondern über das Schlüsselwort like.
All das könntest du selbst herausfinden, wenn du dich mit den Grundlagen von SQL ein wenig näher befassen wolltest. |
AW: D7 Table filter mit Substring
[OT] Asterisk <> Asterix ;) [/OT]
|
AW: D7 Table filter mit Substring
In dBASE selbst nutzt man (wenn ich mich nur halbwegs recht erinnere) den * als [OT] Asterisk <> Asterix [/OT];-) -> Platzhalter für eine beliebige Anzahl von Zeichen und das ? für ein einzelnes Zeichen. Zumindest steht das im Der Data Becker Führer - dBASE IV (von 1989) so.
Aber das funktioniert (meines Wissens) nicht in Filtern. Da klappt (meist) nur die nach rechts offenen Suche. Zur BDE gehört die Localsql.hlp, da steht alles drin, was an SQL über die BDE möglich ist (für dBASE und Paradox) und laut dieser Hilfedatei wird % als Platzhalter genutzt. Auch wenn dBASE die erste relationale Datenbank für PCs war, die mit SQL arbeitete, so war das (zumindest anfangs) doch nur ein Subset von SQL. Da ist es sinnvoller, sich mit der Doku zu dBASE auseinander zu setzen, als sich den "SQL-Standard" reinzuziehen, es mag Übereinstimmungen geben, aber die sind nicht zwingend. |
AW: D7 Table filter mit Substring
Zitat:
|
AW: D7 Table filter mit Substring
Zitat:
Zitat:
Mein Tip ist, dass es entweder nicht geht oder kein Treffer gefunden wird (wenn bspw. * = beliebige Zeichen <> kein Zeichen). |
AW: D7 Table filter mit Substring
Manche Datenzugriffskomponenten haben neben den Attributen Filter und Filtered auch noch das Attribut FilterOptions.
Hier kann gewählt werden:
Das Verhalten scheint insgesamt aber auch abhängig von der Implementierung der Komponente zu sein. Die Filter funktionieren ja auch bei solchen Komponenten, die zwar wie Datenbankzugriffskomponenten arbeiten, aber bei denen keine Datenbank im Hintergrund liegt (z. B.: tkbmMemTable). Ebenso scheinen die Filter nicht unbedingt ein entsprechendes SQL zu generieren, die Syntax bei den Filtern mag ähnlich der von SQL sein, ist aber nicht zwingend in vollem Umfang mit den Möglichkeiten von SQL identisch. |
AW: D7 Table filter mit Substring
Zitat:
foNoPartialCompare =False wäre demnach PartialCompare, das Wildcardzeichen '*' wird als Platzhalter interpretiert. |
AW: D7 Table filter mit Substring
Zitat:
Das man den * an beliebiger Stelle als Wildcard nutzen kann, ist mir bei Filtern bisher noch nicht aufgefallen bzw. hat noch nicht zum gewünschten/erwarteten Ergebnis geführt. Aber das mag auch abhängig von der genutzten Komponente bzw. der darunterliegenden Datenbank sein. |
AW: D7 Table filter mit Substring
Zitat:
Delphi-Quellcode:
Table1.Filter:='"test" & DFName';
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz