Entwickler-Ecke

Datenbanken - SQL, Suche mit Platzhalter


TimHa - Fr 17.03.06 20:55
Titel: SQL, Suche mit Platzhalter
Hallo zusammen!

Ich möchte in meiner Datenbank Kunden suchen können. Die gefundenen Kunden sollen in einem DBGrid angezeigt werden (+ noch ein paar Daten aus einer anderen Tabelle). Ich habe alles schon programmiert und soweit funktioniert es auch. Suchbegriff in Edit Feld. Button zum starten des Querys. Wert wird übergeben und Ergebnis wird im DBGrid angezeigt.

Leider muss ich den Namen des Kunden immer zu 100% richtig angeben. Ich kann also nicht nach "G*" suchen.

Der SQL Code des Querys lautet:

Quelltext
1:
2:
where kunde.kundennr = rechnung.kundennr
and Name = :eingabename;


Wie muss ich die Where Klausel abändern damit ich mit Platzhaltern (*) arbeiten kann?

Danke! :)

Tim


mkinzler - Fr 17.03.06 21:01


SQL-Anweisung
1:
2:
where kunde.kundennr = rechnung.kundennr
and Name like :eingabename;



Delphi-Quelltext
1:
  query.ParamByName('eingabename').Value := <Eingabename> + '%';                    


Delete - Fr 17.03.06 21:28

gar nicht. brauchst nur im eingabefeld eingeben "g%" wenn du nur ein zeichen maskieren willst dann "g_".

viel erfolg


TimHa - Sa 18.03.06 18:17

So, es hat alles funktioniert.

Den SQL Code habe ich so geändert wie es bei mkinzlers Lösung steht.

Den Button, der die Variable übergibt hat u.a. folgenden Quelltext:

Quelltext
1:
Query_Kundensuche.ParamByName('eingabename').AsString:=Edit_name.Text + '%';                    


Damit funktioniert die Suche auch wenn ich nur den Buchstaben "G" eintippe. :)

Danke!!

Tim