AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Firebird Sortierung Umlaute
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird Sortierung Umlaute

Ein Thema von Lemmy · begonnen am 12. Jul 2016 · letzter Beitrag vom 12. Jul 2016
Antwort Antwort
Seite 1 von 2  1 2      
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.380 Beiträge
 
Delphi 10.3 Rio
 
#1

Firebird Sortierung Umlaute

  Alt 12. Jul 2016, 07:44
Datenbank: Firebird • Version: 2.1 • Zugriff über: Umlaute
Hallo zusammen,

wenn ich eine FirebirdDB her nehmen und per ISO8859_1 collate de_de einrichte und dann ein

Code:
Select Name from Kunde order by 1
mache, werden die Umlaute anscheinen nach DIN 5007 Var1 (ä=a) sortiert:


Baumgartner
Bäumel
Baumüller


Gibt es eine Möglichkeit nach DIN 5007 Var2 zu sortieren (ä=ae)? Oder ist das dann nur clientseitig möglich?

Grüße

Geändert von Lemmy (12. Jul 2016 um 07:46 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Firebird Sortierung Umlaute

  Alt 12. Jul 2016, 08:47
Oder eine andere Collation einstellen bzw. einrichten.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Firebird Sortierung Umlaute

  Alt 12. Jul 2016, 08:52
Oder (wenn auch etwas umständlich):

PHP-Quellcode:
Select
  Name
from Kunde
order by replace(replace(replace(Name, 'ä', 'ae'), 'Ä', 'Ae'), 'ö', 'oe') -- usw
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

AW: Firebird Sortierung Umlaute

  Alt 12. Jul 2016, 09:03
Ich bin nicht ganz sicher, aber evtl. gibt es auch bei Firebird das COLLATE in der ORDER BY-Klausel.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.380 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Firebird Sortierung Umlaute

  Alt 12. Jul 2016, 15:24
Oder eine andere Collation einstellen bzw. einrichten.
Hast Du da irgend einen Tipp für mich? Anscheinend klappt es mit CharSet UTF8 und Collation Unicode - aber für ISO8859_1 habe ich bisher keine andere collation gefunden die funktioniert.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Firebird Sortierung Umlaute

  Alt 12. Jul 2016, 15:47
Vielleicht hilft das

create collation ISO8859_1_UNICODE for ISO8859_1; http://firebirdsql.org/refdocs/langr...ollations.html
Markus Kinzler
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.380 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Firebird Sortierung Umlaute

  Alt 12. Jul 2016, 16:03
nope, Sortierung bleib bei lexikalischer Sortierung (ä=a) und nicht wie gewünscht Telefonliste (ä=ae)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.079 Beiträge
 
Delphi 12 Athens
 
#8

AW: Firebird Sortierung Umlaute

  Alt 12. Jul 2016, 16:08
Jo, kann man auch im ORDER BY angeben.

http://www.destructor.de/firebird/charsets.htm
http://firebirdsql.org/refdocs/langr...ollations.html

Die Collation gibt an, unter welchen sprachlichen Regeln die Sortierung und Indizierung vorgenommen werden,
also wie der Stringverleich arbeitet, denn je nach Sprache gibt es da Unterschiede.

Das betrifft nicht nur die Buchstaben und Sonderzeichen, sondern auch die Groß-/Kleinschreibung.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (12. Jul 2016 um 16:31 Uhr)
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.380 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Firebird Sortierung Umlaute

  Alt 12. Jul 2016, 16:31
Die Collation gibt an, unter welchen sprachlichen Regeln die Sortierung und Indizierung vorgenommen werden,
also wie der Stringverleich arbeitet, denn je nach Sprache gibt es da Unterschiede.
und wie genau hilft mir das weiter, wenn die default-Einstellung der Datenbank de_de lautet, es keine andere Einstellung für Deutschland gibt und ich mit der Sortierreihenfolge von de_de nicht einverstanden bin?

Und um alle Klarheiten zu beseitigen:

Code:
 Select Name from Kunde order by 1 collate de_de
bringt genau das gleiche "falsche" Ergebnis - jetzt sogar mit einer eigenen Sortierspalte:



BachBach
BachlBachl
BächleinBaechlein
BachmannBachmann



Und nein, eine Sortierspalte ist nicht wirklich hilfreich, da es nicht nur eine Tabelle betrifft....

Grüße
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.079 Beiträge
 
Delphi 12 Athens
 
#10

AW: Firebird Sortierung Umlaute

  Alt 12. Jul 2016, 16:33
nope, Sortierung bleib bei lexikalischer Sortierung (ä=a) und nicht wie gewünscht Telefonliste (ä=ae)
Da fehlt das FROM und dort eine Collation angeben, welche wie gewünscht sortiert.
Oder die ATTRIBUTE mit der passenden LOCALE.

http://firebirdsql.org/refdocs/langr...llation-create

Wieso eine Sortierspalte?
ORDER BY mit "passendem" COLLATE und schon wird die originale Spalte anders sortiert, als es die COLLATION der Spalte (in der Tabelle) definiert hat.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (12. Jul 2016 um 16:38 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz