Autor Beitrag
TimHa
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 88



BeitragVerfasst: Fr 17.03.06 20:55 
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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Fr 17.03.06 21:01 
ausblenden SQL-Anweisung
1:
2:
where kunde.kundennr = rechnung.kundennr
and Name like :eingabename;


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

_________________
Markus Kinzler.
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 88



BeitragVerfasst: 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:
ausblenden Quelltext
1:
Query_Kundensuche.ParamByName('eingabename').AsString:=Edit_name.Text + '%';					


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

Danke!!

Tim