Thema: Delphi TFDQuery Param "like"

Einzelnen Beitrag anzeigen

Emwykey

Registriert seit: 27. Aug 2013
51 Beiträge
 
#1

TFDQuery Param "like"

  Alt 15. Jun 2018, 11:44
Datenbank: Firebird • Version: 2.5 • Zugriff über: FireDAC
Hallo Zusammen,

ich habe folgende SQL Abfrage:
Code:
Select
*
From Tabelle
where Feld like '%test%'
den Suchwert soll über die
Code:
TFDQuery.ParamByName()
Funktion gesetzt werden.

Da die %% am String direkt mitgegeben werden müssen habe ich ( noch ? ) keine Möglichkeit gefunden diese außerhalb des Parameters anzugeben.
Mein SQL sieht also so aus:
Code:
Select
*
From Tabelle
where Feld like :Parameter
wenn nun nach 'test' gesucht werden soll hängt das System automatisch die % an : '%test%'.

Das Funktioniert auch sehr gut, bis zu dem Moment in dem das entsprechende Feld auf zum beispiel 4 Stellen begrenzt ist, der Suchwert mit den % allerdings länger. Dann erhalte ich den Fehler, dass der Parameter länger als erlaubt ist.

Selbst wenn ich sage, dass wenn der Suchwert genau der Feldlänge entspricht nun nach = anstelle von like gesucht wird hab ich ein Problem sofern der Suchwert nur 3 Stellen lang ist. es sollen ja alle Datensätze gefunden werden die den Suchwert enthalten und in dem Fall müsste ich das in der aktuellen Situation auf die Daten begrenzen die entweder damit beginnen oder enden.

Gibt es eine Möglichkeit dem Query zu sagen "Ignoriere die %% beim Prüfen der Feldlänge"?

Oder muss ich einfach gleich eine andere Funktion verwenden?

Vielen lieben Dank schonmal
  Mit Zitat antworten Zitat