Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi [SQL] Fehler bei Sortierung? (https://www.delphipraxis.net/66000-%5Bsql%5D-fehler-bei-sortierung.html)

FBrust 23. Mär 2006 12:27

Datenbank: Firebird • Version: 1.5.2 • Zugriff über: Zeos 6.5.1

[SQL] Fehler bei Sortierung?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

wenn ich in meinem Programm die Abfrage
SQL-Code:
Select STRARTIST  from
TBLARTISTS
order by STRARTIST
ausführe, erhalte ich das im Screenshot dargestellte Ergebnis. Der Screenshot stammt aus IBExpert, wo ich das gleiche Ergebnis erhalte. Rätselhaft sind für mich die letzten drei Datensätze, die anscheinend nicht sortiert dargestellt werden.

Hat jemand einen Tip, woran das liegen könnte?

Gruß
Frank

Bernhard Geyer 23. Mär 2006 12:30

Re: [SQL] Fehler bei Sortierung?
 
Zitat:

Zitat von FBrust
Hat jemand einen Tip, woran das liegen könnte?

Groß/Kleinschreibung?

mkinzler 23. Mär 2006 12:32

Re: [SQL] Fehler bei Sortierung?
 
Welcher Zeichensatz? Welche Collation? Die Sortierung stimmt eigentlich, bis auf die Tatsache das die kleinen Buchstaben nach den großen kommen! ;-)

FBrust 23. Mär 2006 12:46

Re: [SQL] Fehler bei Sortierung?
 
Hallo,

@Bernhard:

ja, das könnte der Grund sein. :wall:

@mkinzler:

Zeichensatz ist UNICODE_FSS (wg. Umlauten)
Collation keine



Gruß
Frank

mkinzler 23. Mär 2006 12:48

Re: [SQL] Fehler bei Sortierung?
 
Setze mal einen Collation (Sortierreihenfolge)

FBrust 23. Mär 2006 13:05

Re: [SQL] Fehler bei Sortierung?
 
Hallo,

ich hab jetzt eine neue Tabelle erzeugt mit Charset Win1252 und Collation ebenfalls auf Win1252, trotzdem keine Änderung....

Edit: In der IBExpert-Doku stand drin, dass "Win1252" für "westliche" Datenbanken empfohlen wird, deshab hab ich das geändert.


Gruß
Frank

MagicAndre1981 23. Mär 2006 14:18

Re: [SQL] Fehler bei Sortierung?
 
Ich hab immer ISO8859_1 und Collection DE_DE genommen und das ging super.

Hansa 23. Mär 2006 18:54

Re: [SQL] Fehler bei Sortierung?
 
Zitat:

Zitat von FBrust
ja, das könnte der Grund sein. :wall:

Das könnte er nicht nur, sondern genau da liegt der Hund begraben. 8) Sortiere doch mit UPPER und fertig. Wetten das es dann geht ? :-D Den Zeichensatz würde ich (zumindest für den deutschen Sprachraum), wie bereits gesagt, auf ISO8859_1 einstellen. Ansonsten besteht die Gefahr, daß eventuell die Umlaute die Sortierung wieder über den Haufen werfen.

So, mal eben in DB nachgeschaut : kein collate nötig.

FBrust 23. Mär 2006 19:00

Re: [SQL] Fehler bei Sortierung?
 
Hallo,

danke für die Antworten, ich werd den Zeichensatz umstellen, das Collate mal entfernen und dann mit UPPER sortieren und dann mal schauen, wie das Ergebnis ausschaut.


Gruß
Frank

trashcandesign 17. Jan 2008 16:29

Re: [SQL] Fehler bei Sortierung?
 
Kann ich nachträglich bei einer Firebird-DB das cahrset und collate bei bestehenden Tabellen abändern?
Gibt es eine Möglichkeit die Sortierung über irgendwelche Proceduren o.ä. regeln?

mkinzler 17. Jan 2008 20:00

Re: [SQL] Fehler bei Sortierung?
 
Ja in dem du eine eigene Collation anlegst
http://www.jodelpeter.de/i18n/
Aber bei deinem Problem hilft schon die Anlage einen Expression Index auf UPPER() (Bei Update auf FB2)

DeddyH 17. Jan 2008 20:01

Re: [SQL] Fehler bei Sortierung?
 
"jodelpeter.de"... wie findet Ihr nur solche Seiten?

trashcandesign 18. Jan 2008 08:22

Re: [SQL] Fehler bei Sortierung?
 
@mkinzler

sorry, aber die Seite die du gepostet hast versteh ich nicht :stupid:
Kannst du das etwas genauer erläutern?

Weitere Infos zu meinem Problem:
Wenn ich Daten selektier und die zB. nach Name sortiere werden die Umlaute nach dem Buchstaben z eingeordnet.
Natürlich finden unsere Kunden das nicht so wirklich gut. Die wollen natürlich, dass ein ä nach einem a einsortiert wird usw.
DB-Systeme wie MSSQL und Oracle liefern mir die Daten genauso, wie ich sie brauche. Nur Firebird will da mal wieder eine Ausnahme machen.
Und soweit ich das hier und in anderen Artikeln gelesen habe erreiche ich das eben über das Setzen des Charset und der Collation.
Wenn ihr noch eine andere Lösung kennt, immer her damit.

Bernhard Geyer 18. Jan 2008 08:32

Re: [SQL] Fehler bei Sortierung?
 
Zitat:

Zitat von trashcandesign
Die wollen natürlich, dass ein ä nach einem a einsortiert wird usw.
DB-Systeme wie MSSQL und Oracle liefern mir die Daten genauso, wie ich sie brauche.

Sind wohl die anderen DB's hellsehr nachdem die definition "wie ich sie brauche" alles andere als Vorhersehbar für eine Datenbank ist. Und das sind nur die Möglichkeiten die im deutschen Wiki-Eintrag aufgeschrieben wurden :-)

trashcandesign 18. Jan 2008 08:39

Re: [SQL] Fehler bei Sortierung?
 
Hm, hilft mir jetzt nicht so wirklich weiter.

Wie das bei Oracle so ist weiß ich nicht, aber Die von MSSQl sind keine Hellseher, da werde ich, soweit ich das gesehen habe, bei der Installation zb. nach der Sortierreihenfolge gefragt ;)

trashcandesign 18. Jan 2008 11:55

Re: [SQL] Fehler bei Sortierung?
 
So, weiteres Problem :)

ich hab jetzt mal eine neue DB angelegt, mit charset iso8859_1.
Tabellen eingefügt und Inhalte.

So, wenn ich jetzt ein Select mit Order by per ZEOS abschicke hängt sich das Programm auf???
Ohne das Order by läuft es soweit.

Kennt das jemand? Ursache/Lösung?

mkinzler 19. Jan 2008 08:51

Re: [SQL] Fehler bei Sortierung?
 
Existiert ein Index auf die zu durchsuchende Spalte?

trashcandesign 21. Jan 2008 09:51

Re: [SQL] Fehler bei Sortierung?
 
In dem Fall nein.

Ich probier das mal aus. Danke dir.

augustin 27. Feb 2008 08:42

Re: [SQL] Fehler bei Sortierung?
 
Ich verwende für meine Firebird 1.5.3 Volltextdatenbank (ca 1 Mio Einträge, Länge 25 VARCHAR) den Zeichensatz WIN1252 und die Collation PXW_INTL850. Alle Einträge mache ich grundsätzlich in Großbuchstaben (also alle Eingaben mit ansiuppercase() konvertiert.
Damit erfolgt die Sortierung nach DUDEN.

Falls du keine Collation in der Tabelle verwendest, genügt es ja, in der ORDER BY Anweisung diese anzugeben, also " ORDER BY STRARTIST collate PXW_INTL850"

Zeichensätze siehe http://www.destructor.de/firebird/charsets.htm

mkinzler 27. Feb 2008 08:47

Re: [SQL] Fehler bei Sortierung?
 
Zitat:

Alle Einträge mache ich grundsätzlich in Großbuchstaben (also alle Eingaben mit ansiuppercase() konvertiert.
Ab Fb2.0 würde sich hier ein expression index anbieten


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:05 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