Einzelnen Beitrag anzeigen

rokli

Registriert seit: 21. Mär 2009
Ort: Rödinghausen
301 Beiträge
 
Delphi 10.4 Sydney
 
#1

Spaß mit UPPERCASE / LOWERCASE ?

  Alt 21. Okt 2020, 09:07
Moin,

Aufgabe: Einen Datensatz anhand eines Namens in einer DB finden.

Ein Editfeld enthält den zu suchenden Begriff: "König Günter".
Damit ich bei der Schreibweise kein Theater bekomme, habe ich die Vergleichswerte in Großschrift gewandelt:

Das Coding sieht so aus:
Delphi-Quellcode:
         
qryKd.SQL.Text    := sSQL +
         ' AND UPPER(Kd.Name1) LIKE ' + QuotedStr(UPPERCASE(TRIM(edtName1.Text)) + '%') +
         ' ORDER BY Kd.Name1';
und das kommt in der Query an:

   AND UPPER(Kd.Name1) LIKE 'KöNIG GüNTER%' ORDER BY Kd.Name1

Ich finde natürlich nicht einen Datensatz, da die Umlaute nicht in Großschrift übersetzt worden sind!

Nächste Idee: Alles auf Kleinschrift bringen:
Delphi-Quellcode:
         
qryKd.SQL.Text    := sSQL +
         ' AND LOWER(Kd.Name1) LIKE ' + QuotedStr(LOWERCASE(TRIM(edtName1.Text)) + '%') +
         ' ORDER BY Kd.Name1';
Ergebnis:
   AND LOWER(Kd.Name1) LIKE 'kÖnig günter%' ORDER BY Kd.Name1 Diesmal bleiben groß geschriebenen Umlaute auch in Großschrift.

Ich werde wohl die Umlaute durch die benötigten Ascii-Werte ersetzen müssen.

Weiß jemand, warum die Umlaute von UPPERCASE nicht groß gemacht werden, bzw. bei LOWERCASE nicht klein gemacht werden?
Rolf
wenn nicht anders angegeben, schreibe ich zu D7, XE2 und MS SQL - ansonsten fragen Sie ihren Administrator oder einen Operator. Update 06/2020: Delphi 10.4 Sydney
  Mit Zitat antworten Zitat