AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datenbank-Suche mit Locate
Thema durchsuchen
Ansicht
Themen-Optionen

Datenbank-Suche mit Locate

Ein Thema von matt11 · begonnen am 29. Jul 2005 · letzter Beitrag vom 2. Aug 2005
Antwort Antwort
matt11

Registriert seit: 14. Okt 2004
5 Beiträge
 
#1

Datenbank-Suche mit Locate

  Alt 29. Jul 2005, 11:44
Datenbank: Paradox • Zugriff über: Delphi
Ich suche eine einfache Funktion zum Durchsuchen einer Datenbank nach beliebigen Teilstrings. Mit Locate
Table1.Locate('name', 'hans', [loPartialKey]); klappt das schon ganz gut, solange das Suchkriterium am Anfang des Datenfeldes zu finden ist.
Wie kann ich aber nun eine Übereinstimmung in der Mitte oder am Ende eines Wortes finden? Ich meine, wenn im Datenfeld z.B. 'Hans-Jürgen' steht und ich nun nicht nach 'hans' sondern nach 'jürgen' suchen möchte.
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Datenbank-Suche mit Locate

  Alt 29. Jul 2005, 11:52
Hallo matt11,

das geht am besten über ein SQL Statement, bei dem zu den LIKE Operator nutzt. Suche einmal nach LIKE im Forum. Der Einsatz wurde schon oft besprochen.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
matt11

Registriert seit: 14. Okt 2004
5 Beiträge
 
#3

Re: Datenbank-Suche mit Locate

  Alt 29. Jul 2005, 13:05
Danke MrSpock,

ich hatte schon fast erwartet, dass ihr mir eine SQL-Abfrage empfehlen werdet. Scheint wohl doch die einzig brauchbare Methode zu sein. Ich dachte nur, dass ich in diesem Fall mit Delphi-Befehlen auskomme, aber dem ist wohl nicht so.
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Datenbank-Suche mit Locate

  Alt 29. Jul 2005, 20:50
Hallo matt11,

naja, du könntest natürlich auch in einer Schleife durch die Datenmenge laufen und dann den Inhalt des Feldes mit Pos() analysieren.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
matt11

Registriert seit: 14. Okt 2004
5 Beiträge
 
#5

Re: Datenbank-Suche mit Locate

  Alt 1. Aug 2005, 10:48
Hallo MrSpock,

so hab' ich's letztlich auch gemacht. Bei der Menge der zu erwartenden Daten funktioniert das praktisch auch ganz gut. Ich dachte eben nur, wenn ich schon eine indizierte Datenbank habe, müsste ich auch eine seriöse Suchfunktion benutzen, aber so geht's auch.

Matt
  Mit Zitat antworten Zitat
Texas

Registriert seit: 15. Jul 2005
Ort: Laatzen
56 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#6

Re: Datenbank-Suche mit Locate

  Alt 1. Aug 2005, 18:55
hallo matt11

bei einem TTable kanst Du auch einen Filter setzen

Delphi-Quellcode:
procedure TForm1.SuchenBitBtnClick(Sender: TObject);
var s : string;
begin
s := '';
s := 'Name like' + '''' + '%ller%' + '''' + ' or Strasse < ' + '''' + 'Neuestr' + '''' ;
(gibt mir alle Namen wie Müller, Miller, Schiller etc und alle Strassen die kleiner als Neuestr)
Table1.filter := s;
Table1.filtered := true;
end;
wenn nicht mehr benötigt Table1.filtered := false; Gruß Texas
Michael
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
672 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Datenbank-Suche mit Locate

  Alt 2. Aug 2005, 07:16
Zitat von Texas:
bei einem TTable kanst Du auch einen Filter setzen

Delphi-Quellcode:
procedure TForm1.SuchenBitBtnClick(Sender: TObject);
var s : string;
begin
s := '';
s := 'Name like' + '''' + '%ller%' + '''' + ' or Strasse < ' + '''' + 'Neuestr' + '''' ;
(gibt mir alle Namen wie Müller, Miller, Schiller etc und alle Strassen die kleiner als Neuestr)
Table1.filter := s;
Table1.filtered := true;
end;
Aber Achtung: Like wird m.W. bei keiner DB im Filter unterstützt. Die zugehörige XBase-Style Expression ist $:
 s:= '"ller" $ Name';
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Datenbank-Suche mit Locate

  Alt 2. Aug 2005, 07:59
Zitat von Texas:
hallo matt11

bei einem TTable kanst Du auch einen Filter setzen
wobei man wo es geht auf TTable verzichten sollte.
Lieber ein TQuery mit "SELECT ab FROM xy WHERE field LIKE %text%" verwenden.

gruessle
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:48 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