Hallo Burn,
die Frage mit dem Vorhandensein von entsprechenden Daten, meinte ich nicht böse, sorry, wenn es so rübergekommen ist.
Das darf sein:
- abc/12345
abc\12345
abc\12345a
abc/12345X
das darf nicht sein:
- abc/123a
abc\12346
abc\1244
Deine Abfrage geht auf:
d. h.:
Es werden nur Inhalte verglichen, bei denen in Feld1 ein Wert steht, der genau 7 Zeichen lang ist. Demnach wird hier keiner der von Dir aufgeführten falschen Werte gefunden.
Ausgehend von Deinen Beispieldaten gehe ich einmal davon aus, das Dir 3 Zeichen vor / und \ bekannt sind,
das dann 5 Ziffern und eventuell ein Buchstabe folgen.
Damit kommen wir eventuell weiter:
Wir setzen in den Filter das, was richtig ist:
Delphi-Quellcode:
TextTeil1 := 'abc';
TextTeil2 := '12345';
s := AnsiUpperCase(TextTeil1 + '_' + TextTeil2 + '_');
sagen der Datenbank aber, dass wir genau das nicht gefunden haben wollen, indem wir vor das like ein NOT stellen:
Delphi-Quellcode:
QSuche.SQL.Add('Select Feld1, Feld2, Feld3 from Tabelle where ');
QSuche.SQL.Add('UPPER(FELD1 COLLATE DE_DE) NOT like ' + QuotedStr(s));
Hoffe, das bringt Dich jetzt weiter.
Stephan