![]() |
Umlaute anzeigen egal ob Ü oder UE usw.
Hi,
Ich habe ein TEdit als Suchfeld in welches der Teil,-Artikelname eingegeben wird und dann die gefundenen Datensätze in einem DBGrid anzeigt. In der DB sind Daten mal mit UE oder mal mit Ü geschrieben, wie kann ich es erreichen das er wenn ich z.B. nach Ä suche er auch AE anzeigt? Mfg, Steve |
Re: Umlaute anzeigen egal ob Ü oder UE usw.
Es gibt das Wort OR für IF - Abfragen. Und dann noch die Funktion POS -> Hilfe. Damit ist das eine Kleinigkeit. 8)
|
Re: Umlaute anzeigen egal ob Ü oder UE usw.
Standardgegenfrage: Welche Datenbank?
in MSSQL könntest du dir ne Funktion schreiben die dir alle ü in ue umwandelt. Die Abfrage könnte dann so lauten:
SQL-Code:
Dafür musst du natürlich auch von Delphi heraus sicherstellen, dass du die ü in ue umwandelts, und dann auch tatsächlich nach Mueller suchts... Mixen kannst du beides nicht
select * from Kontakte where dbo.umlaute(Nachnname) = 'Mueller'
|
Re: Umlaute anzeigen egal ob Ü oder UE usw.
Zitat:
|
Re: Umlaute anzeigen egal ob Ü oder UE usw.
HI,
ich arbeite mit MySQL. Die Ü und UE umwandeln ist schlecht da es vorgeschriebene Bezeichnungen sind und nicht einfach so geändert werden sollen/dürfen. Was mich nervt ist einfach nur das ich nach "ÜBUNG" suche er mir die auch zurück gibt aber eben nicht "UEBUNG" umgekehrt soll es natürlich auch gehen. Suche -> Üb = Ueb, Üb Suche -> Ueb = Ueb, Üb Suche -> Öl = Oel, Öl usw.... Mfg, Steve |
Re: Umlaute anzeigen egal ob Ü oder UE usw.
Kann man in MySQL Funktionen erstellen :gruebel:
Wenn nicht, hast du ein Problem. Zum Suchen/Vergleichen hast du nur 2 Möglichkeiten... ü mit ü oder ue mit ue, soll heissen, entweder du wandelst bei der Suchabfrage alle ü in ue um, oder umgekehrt. Ich glaub aber du hast mich falsch verstanden. Ich meinte nicht, dass du in der DB die Einträge änderst, sondern dass du nur bei der Suche die ü in ue umwandelst. Wenn du in Delphi schreibst,
Delphi-Quellcode:
hast du den Inhalt von Dummy ja auch nicht verändert, sondern nur die Grossschreibung für den Vergleich herangezogen.
if uppercase(Dummy)='MUELLER' then begin
... end ; EDIT: OK, hab grad mal kurz nachgeschaut, MySQL scheint auch Funktionen zu unterstützen, also sollte sowas machbar sein... |
Re: Umlaute anzeigen egal ob Ü oder UE usw.
MySQL scheint sowas sogar oder eigene Benutzerfunktion zu unterstützen:
![]() |
Re: Umlaute anzeigen egal ob Ü oder UE usw.
Hi,
gut danke dann werde ich mal bei MySQL schauen, da wird sich bestimmt was finden. Mfg, Steve |
Re: Umlaute anzeigen egal ob Ü oder UE usw.
zu dem OR ...
mach doch einfach 2 Suchstrings. einmal wo die Ä's, Ö's, Ü's... drin sind und dann noch 'nen Zweiten, wo du dann die Namen aus dem ersten String hernimmst und mit StringReplace alles in AE, OE... umwandelst. Und dann läßt du einfach nach beiden Strings in der DB suchen (natürlich OR-verknüpft). |
Re: Umlaute anzeigen egal ob Ü oder UE usw.
Was treibt ihr denn da ? :shock:
Normalfall :
Delphi-Quellcode:
;
DS.SelectSQL.Text := 'SELECT * FROM TABLE1 WHERE UPPER (NAME) LIKE UPPER (''%' + edSuch.Text + '%'') ORDER BY NR';
Groß/Kleinschreibung gleich miterschlagen. 8) Beliebige Position im Suchstring möglich. für ä/ae abgewandeltes SelectSQL :
Delphi-Quellcode:
;
if pos ('ae',edSuch.Text) <> 0 then begin
HilfStr := StringReplace (edSuch.Text ... ä durch ae ersetzen ! DS.SelectSQL.Text := 'SELECT * FROM TABLE1 WHERE UPPER (NAME) LIKE UPPER (''%' + edSuch.Text + '%'') OR UPPER (NAME) LIKE UPPER (''%' + HilfStr + '%'') ORDER BY NR'; Reicht das ? :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz