ich finde ein seltsames Verhalten bei einem SQL-Befehl.
Gearbeitet wird mit Lazarus - Linux/Kubuntu, den Zeos-Komponenten und einer SQLite Datenbank.
Code: Alles auswählen
sss := 'Buch' ;
sss := ( '%' + sss + '%' ) ; // funktioniert wie es soll: findet alle genannten Wörter
// sss := ( sss + '%' ) ; // findet nichts : erwartet wird: Buch(?) und Buchdrucker
// sss := ( '%' + sss ) ; // findet auch nichts : erwartet wird: Buch(?) und Handbuch
Form2.Edit1.Text:=sss;
With form1.Qtext do
Begin
SQL.Clear;
SQL.Add('SELECT * FROM tText');
SQL.Add('WHERE (rText LIKE :Such1 Or rTitel LIKE :Such1 Or rHinweis LIKE :Such1)');
SQL.Add('ORDER BY UPPER(rTitel)');
Params.ParamValues['Such1'] := sss;
Open;
end;
z.B.:
Buch / Handbuch / Buchdrucker / Handbuchinhalt
Dann findet die nicht auskommentierte obige Zeile alle Worte und die beiden auskommentierten Zeilen (wenn nicht auskommentiert) nichts??
Obwohl
1. in "Form2.Edit1.Text" der richtige Begriff übernommen ist, also %Buch% , %Buch oder Buch%
und obwohl
2. ein SQL-Editor (SQLite-Manager) die Befehle in allen drei Variationen fehlerfrei abarbeitet.
Aliobaba