Seite 1 von 1

Re: Datensatz filtern ohne Beachtung Groß- und Kleinschreibu

Verfasst: Mi, 28.11.2012 12:56
von juetho
Das einfachste ist, alle Werte mit LCASE als Kleinbuchstaben zu vergleichen. Je nach Situation gibt es weitere Möglichkeiten; beispielsweise kennt die interne HSQLDB eine SOUNDEX-Funktion (Handbuch S. 272) für "unscharfe" Vergleiche. Jürgen

Re: Datensatz filtern ohne Beachtung Groß- und Kleinschreibu

Verfasst: Mi, 28.11.2012 18:18
von F3K Total
Moin,
juetho hat geschrieben:Das einfachste ist, alle Werte mit LCASE als Kleinbuchstaben zu vergleichen. Je nach Situation gibt es weitere Möglichkeiten; beispielsweise kennt die interne HSQLDB eine SOUNDEX-Funktion (Handbuch S. 272) für "unscharfe" Vergleiche. Jürgen
Hier eine weitere Möglichkeit, statt Kleinbuchstaben werden hier die Großbuchstaben mit "UPPER" direkt im SQL-Statement verglichen.

Code: Alles auswählen

oForm.filter = " UPPER (Name) LIKE UPPER('%" +sSuchwort1+ "%') OR UPPER (Firma) LIKE UPPER ('%" +sSuchwort1+ "%') OR UPPER (Bereich) LIKE UPPER ('%" +sSuchwort1+ "%')"
Gruß R

Re: Datensatz filtern ohne Beachtung Groß- und Kleinschreibu

Verfasst: Mi, 28.11.2012 20:23
von RobertG
Hallo R,

Ob ich allerdings "UPPER" oder "LCASE" nehme ist doch wohl egal, oder? Jedenfalls versteht die interne HSQLDB beide Varianten. Im Gegensatz zu "UPPER" macht "LCASE" beim "ß" keine zwei Buchstaben aus einem.

Die Soundex-Funktion, die im Handbuch erwähnt ist, dürfte allerdings speziell etwas für den englischsprachigen Raum sein ....

Gruß

Robert

Re: Datensatz filtern ohne Beachtung Groß- und Kleinschreibu

Verfasst: Mi, 28.11.2012 20:38
von F3K Total
Hallo Robert,
klar, ist ja sogar besser, wie du es schreibst, ich dachte LCASE wäre Basic.
Wieder etwas gelernt, danke!

Gruß Rik

Re: Datensatz filtern ohne Beachtung Groß- und Kleinschreibu

Verfasst: Mi, 28.11.2012 20:54
von RobertG
Hallo Rik,

LCASE ist sowohl in Basic als auch in SQL mit der HSQLDB mit der gleichen Bedeutung einsetzbar. Ich musste aber auch erst wieder in dem Handbuch nachsehen, dass ich ja selbst zusammengestellt habe ... Auf S. 242 habe ich in einem Makro LCase in Basuc genutzt, um den Inhalt aus einem Eingabefeld in Kleinschrift zu setzen. Auf S. 243 habe ich LCASE als SQL-Befehl genutzt, um damit zu vergleichen.

Gruß

Robert

Re: Datensatz filtern ohne Beachtung Groß- und Kleinschreibu

Verfasst: Do, 29.11.2012 08:59
von juetho
Um es noch weiter zu treiben: Ich bin bei meinem Vorschlag für LCASE von der Aufstellung im Handbuch S. 242 f. ausgegangen und wollte nur eine Variante angeben (also nicht zusätzlich LOWER). Da Lisa (wie üblich) weder die OO-Version noch das DBMS* angegeben hat, bin ich darauf auch nicht weiter eingegangen. In "meinem" SQL-Buch schreibe ich an vielen Stellen, dass man sowieso die spezielle DBMS-Dokumentation beachten muss wegen der zur Verfügung stehenden Funktionen.

Zusammenfassung:
  • UPPER und LOWER sind SQL-Standard, können also innerhalb eines SQL-Befehls verwendet werden.
  • LCASE und UCASE sind nicht nur Funktionen von (Star-)Basic, sondern teilweise auch DB-Erweiterungen - nicht nur bei HSQL, sondern auch bei MySQL. Sie können also innerhalb von Makros und teilweise auch innerhalb von SQL-Befehlen verwendet werden.
  • Wieweit Umlaute oder 'ß' sauber umgesetzt werden, hängt vom verwendeten Zeichensatz ab. Da OO auf Unicode ausgerichtet ist, kann man wohl von korrekter Verarbeitung ausgehen.
Folglich hätte ich nicht LCASE, sondern besser LOWER vorschlagen sollen. Jürgen

* DBMS = Datenbank-Managementsystem (für andere Leser als R und Robert)