Autor |
Beitrag |
Kaweb
      
Beiträge: 21
|
Verfasst: Sa 29.03.03 19:24
hallo,
ich verwende locate zum durchsuchen meiner datenbank. nur wird nicht alles gefunden. ich habe in einem Feld Vorname und Nachname stehen. "Fritz Müller". Wenn ich jetzt nach "Müller" suche, findet Locate nichts?!
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure Tmain_form.SearchInDatabase; var options: TLocateOptions; begin Options := [loCaseInsensitive,loPartialKey]; with Table1 do begin if not Locate('pvornachname',search_form.suchen.Text,Options) then if not Locate('panschrift',search_form.suchen.Text,Options) then if not Locate('pplz',search_form.suchen.Text,Options) then if not Locate('port',search_form.suchen.Text,Options) then if not Locate('gfirma',search_form.suchen.Text,Options) then if not Locate('gabteilung',search_form.suchen.Text,Options) then if not Locate('ganschrift',search_form.suchen.Text,Options) then if not Locate('gplz',search_form.suchen.Text,Options) then if not Locate('gort',search_form.suchen.Text,Options) then end; end; |
im generellen ist es so, sobald etwas mit einem leerzeichen getrennt wird, findet locate nur das vor dem leerzeichen.
währe nett, wenn ihr mir helfen könntet.
mfg
Andreas alias Kaweb
|
|
UGrohne
      

Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: Sa 29.03.03 19:29
Also ich bin mir nicht ganz sicher, denn Locate setze ich nur intern ein, aber versuch mal vor den Searchstring ein % zu setzen, vielleicht gehts dann besser. Ansonsten geb ich Dir den Tipp, das Ganze über ein SQL-Query zu machen, ist viel komfortabler, auch auf die Suchfunktionen bezogen und Du hast gleich alle Ergebnis in einem Query
|
|
Kaweb 
      
Beiträge: 21
|
Verfasst: Sa 29.03.03 19:38
hi,
das % bewirkt auch nichts. wenn ich ein SQL-Query verwende, brauch ich wieder die BDE. Ich arbeite mit der EasyTable Komponente. Gibts denn keine andere möglichkeit eine Standartdatenbank zu durchsuchen?
mfg
Andreas
|
|
UGrohne
      

Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: Sa 29.03.03 19:39
Kaweb hat folgendes geschrieben: | das % bewirkt auch nichts. wenn ich ein SQL-Query verwende, brauch ich wieder die BDE. Ich arbeite mit der EasyTable Komponente. Gibts denn keine andere möglichkeit eine Standartdatenbank zu durchsuchen? |
Was meinst Du mit Standard-Datenbank? Ich kenn EasyTable net, für was für ne Datenbank sind die?
|
|
grayfox
      
Beiträge: 800
win98, winXP
D4 Standard; D6 Personal
|
Verfasst: Sa 29.03.03 21:16
hallo andi!
warum richtest in deiner tabelle denn nicht ein feld für den vornamen und eins für den zunamen ein? dann hättest du viele probleme von anfang an nicht!
bei locate heisst der platzhalter '*' und nicht '%', das gibts nur bei SQL.
ausserdem wird der '*' nur am wortende berücksichtigt, am wortanfang klappts nicht
mfg, stefan
|
|
Kaweb 
      
Beiträge: 21
|
Verfasst: So 30.03.03 12:49
also mit * gehts leider auch net  ich glaub ich werde das feld "Vor- / Nachname" in zwei Felder aufteilen.
@UGrohne: Hier steht, was EasyTable ist.
mfg
Andreas
|
|
|