![]() |
TDBF - Suchen (mit Wildcards)
Moin !
Ich progge mir gerade meine erste DB Anwendung. Und zwar brauche ich für ein anderes Projekt eine EMail/Newsletter Verwaltung. Dort kann ich Name, Ort, ...., Mail und ein Boolean ablegen für Newsletter ja/nein. Dazu noch ein Memo wo ich einen Text hinterlegen kann. Als DB verwende ich die TDBF. Weil das reicht mir vollkommen und ich brauche die BDE nicht. Ich habe das Prog mitlerweile ganz gut am rennen. Sprich Eingaben und Ausgaben gehen wunderbar. Aber nun müsste ich ein bisserl über die DB Suchen, um mir entsprechende Maillisten generieren zu lassen. Nur wie !? Eins muss ich noch dazu sagen ... In meiner DB gibts z.B. so ne Tabelle (is in Echt etwas umfangreicher). Name | EMail | Gerät Nun müsste ich nach bestimmten Geräten suchen. Bräuchte aber Wildcards, denn es gibt z.B. ein ISL 6 und ISL 8 oder einer nennt es z.B. Schulze ISL. Was mich nun interessiert ist das "ISL". Und dazu brauche ich dann alle Mailadressen. Kurzum kann man da irgendwie was mit Wildcards machen, oder geht das mit der DB nicht? Und wie sollte man die Suche bewerkstelligen? Mit Locate!? Muss ich dann in einer For Schleife die ganzen einzelnen Sätze durchgehen, oder macht das Locate selber? Und wenn letzteres wie Suche ich dann weiter!? Hänge da im Moment irgendwie ein bisserl und hoffe mir kann da einer 1-2 Tips geben. Thx! |
Re: TDBF - Suchen (mit Wildcards)
|
Re: TDBF - Suchen (mit Wildcards)
Moin !
Zitat:
Also wie gesagt ich habe hier eine ![]() |
Re: TDBF - Suchen (mit Wildcards)
Wenn es die Eigenschaften Filter und Filtered gibt, versuch es mal damit. In die Eigenschaft Filter setzt du die WHERE-Klausel einer SQL-Anwendung und mit Filtered = TRUE setzt du den Filter, Beispiel:
Code:
Grü0e
...
var SuchStr: String; ... SuchStr := 'blubber'; with TDBF1 do begin Filtered := False; Filer := 'NAME LIKE ' + QuotedStr('%' + SuchStr + '%'); Filtered := True; end; ... Mikhal |
Re: TDBF - Suchen (mit Wildcards)
Moin!
Mit dem Filter kann ich zwar suchen, aber nicht nach einem Teilstring. Was noch geht ist z.B. M* > also alles suchen was mit M anfängt. Ich brauche aber zwingend eine Teilstringsuche. Bsp: In der Tabelle steht folgender String: "Hallo 123Welt". Nun möchte ich eine Suchanfrage starten, die mir als Ergebnis alle Datensätze liefert, wo in dem String 123 vorkommt. Weiterhin bräuchte ich ne Möglichkeit, um zu prüfen ob in der Tabelle ein Boolscher Wert True oder False ist. |
Re: TDBF - Suchen (mit Wildcards)
Schon mal versucht, das % durch * zu ersetzen?
Normalerweise kann ich auch in einem Filter mit LIKE hantieren... Grüße mikhal |
Re: TDBF - Suchen (mit Wildcards)
Du hast im Prinzip 3 Möglichkeiten:
Dazu musst du einen Eventhandler für OnFilterRecord schreiben:
Delphi-Quellcode:
Die Funktion CompareWildText bekommst du in der Code-Library:
procedure TForm1.Table1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin Accept := CompareWildText('*LSL*', DataSet.FieldByName('Geraet').AsString); end; ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00: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