Einzelnen Beitrag anzeigen

Perlsau
(Gast)

n/a Beiträge
 
#13

AW: Firebird-Spalte ohne Groß-Klein-Schreibung sortieren

  Alt 18. Jan 2011, 14:57
Die meisten Standard Firebird collations sind case sensitiv.
Aber mit dem folgenden Befehl erstellst Du Dir in der Datenbank auf einfachste Art eine case-insensitive Collation:
Code:
create collation meine_collation
    for ISO8859_1
    from de_de
    case insensitive;
Dabei ist ISO8859_1 der zugrundeliegende Zeichensatz (könnte auch ein beliebiger anderer sein) und de_de die zu diesem Zeichensatz gehörende casesensitive Sortierung (könnte auch eine beliebige andere sein).
Bei den entsprechenden Spaltendefinitionen schreibst Du dann: ... collate meine_collation
Okay, ich hab jetzt also den SQL-Editor innerhalb von IBExpert light aufgerufen und eine collation mit dem Namen COL_INSENSI erstellt, wie du es oben beschrieben hast. Das hat Firebird anstandslos kompiliert. Als nächstes hab ich mittels Doppelklick auf die betreffende Spalte in den Feld-Definitionen den Eintrag in der Collation-Spalte von DE_DE auf COL_INTENSI umgestellt. Nachdem ich dann meine umständliche Lösung – Order by LOWER(TITEL) – in der Delphi-IDE rückgängig gemacht und den ursprünglichen Quellcode wieder hergestellt habe, zeigt mir meine Tabelle jedoch wieder die falsche Sortierung:

Der String "In The" wird vor dem String "In drei" aufgeführt (bei aufwärtiger Sortierung). Hat leider nicht funktioniert ...

Vielleicht kannst du ja anhand meiner ausführlichen Dokumentation meiner Schritte erkennen, ob ich dabei einen Fehler gemacht habe.

Hab dennoch herzlichen Dank für deine bisherigen Bemühungen, mir auf die Sprünge zu helfen

Edit will noch wissen, wo denn die von mir erstellte Collation abgespeichert wird, bzw. wo ich sie eventuell ändern kann.

Geändert von Perlsau (18. Jan 2011 um 16:51 Uhr)
  Mit Zitat antworten Zitat