Weiß jemand, warum die Umlaute von UPPERCASE nicht groß gemacht werden, bzw. bei LOWERCASE nicht klein gemacht werden?
Es sind nicht nur Umlaute, mit denen man diesen Spaß haben kann, sondern auch andere Zeichen, z.B. Accents. Und da gibt es dann noch landesspezifische Unterschiede: In Frankreich oder Kanada werden Accents bei Großschreibung weggeleassen, im anderen Land nicht (ich weiß gerade nicht mehr, welches welches war).
Selbst wenn man die Konvertierung explizit selbst vornimmt ( if s[i]='ä' then s[i]:='Ä' ), ist noch immer nicht gesagt, dass dann die Datenbank-Engine gleich konvertiert. Es ist sicherer, beides von der Datenbank-Engine machen zulassen, sofern sie eine Konvertierungsfunktion zur Verfügung stellt.
Delphi-Quellcode:
qryKd.SQL.Text := sSQL +
' AND UPPER(Kd.Name1) LIKE UPPER(' + QuotedStr(UPPERCASE(TRIM(edtName1.Text)) + '%') + ')' +
' ORDER BY Kd.Name1';