Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi (Deutsche) Sortierung in Firebird (https://www.delphipraxis.net/155528-deutsche-sortierung-firebird.html)

TheMiller 27. Okt 2010 13:16

Datenbank: Firebird Embedded • Version: 2.1 • Zugriff über: ZEOS

(Deutsche) Sortierung in Firebird
 
Hallo,

also manchmal wünsche ich mir, ich hätte ich mir MySQLLite entschieden. Aber gut, jetzt ist Firebird im Einsatz und ich muss mich damit abfinden...

Mein Problem ist folgendes. Ich würde gerne (wie in einem andern Thread schon angesprochen), Einträge in einer TreeView anzeigen - und zwar alphabetisch sortiert.

Füge ich in dem SQL-Statement ein simples "ORDER BY titel ASC" ein, funktioniert das nur bedingt. Er sortiert zwar, hängt aber alle Einträge, die mit Umlauten beginnen, hinter "Z". Mit Umlauten mitten im Text wird es genauso sein.

Hier meine Felddefinition:

Tabelle "ordner"
titel = VarChar(100)
collate = utf8
charset = utf8

Ich hoffe, ihr könnt mir helfen. Ich habe in Google geschaut. Die einzige "Lösung", die ich gefunden habe ist folgendes
".. ORDER BY titel COLLATE DE_DE ASC" zu schreiben. Aber das klappt bei utf8 wohl nicht.

Danke!

chaosben 27. Okt 2010 15:12

AW: (Deutsche) Sortierung in Firebird
 
Das Einfachste wäre imho, das du das Feld, wo die Umlaute drin sind als "ISO_8859_1 collation de_de" definierst. Da brauchst du es nicht bei jedem Statement angeben.

TheMiller 28. Okt 2010 14:17

AW: (Deutsche) Sortierung in Firebird
 
Hallo,

vor der Umstellung habe ich ein wenig Angst. Hatte Probleme, alles auf UTF-8 umzustellen. Jetzt läuft alles (die ganze DB ist UTF-8) und habe Angst vor eventuellen Fehlern.

Eigentlich war es dämlich, dass ich UTF-8 gewählt habe. Meine Software wird ausschließlich mit deutschen Schriftzeichen gefüllt. Naja - sau dumm.

Jedenfalls wollte ich es mit einer Test-Kopie probieren und da sagt er mir beim Umstellen

Zitat:

SQL Error: unsuccessful metadata update [TABELLE] CHARACTER SET ISO8859_1 is not installed. Error Code -607. This operation is not defined for system tables.
Den letzten Teil der Meldung verstehe ich nicht. Meine Tabelle ist doch keine Systemtabelle...

Könnt ihr mir grad nochmal helfen?

Danke

nachti1505 28. Okt 2010 14:57

AW: (Deutsche) Sortierung in Firebird
 
Das Updaten von MetaDaten geschieht aber in den SysTables

hoika 28. Okt 2010 15:20

AW: (Deutsche) Sortierung in Firebird
 
Hallo,

nimm doch mal IBExpert,
der zeigt dir das darunterliegende SQL-Statement an.


Heiko

TheMiller 28. Okt 2010 15:42

AW: (Deutsche) Sortierung in Firebird
 
Hi,

das Statement sieht wie folgt aus (Firebird Maestro 7)

[SQL]
/* Modify charset for (RDB$36) */
UPDATE RDB$FIELDS
SET RDB$CHARACTER_SET_ID = 21
WHERE RDB$FIELD_NAME = 'RDB$36';

UPDATE RDB$RELATION_FIELDS
SET RDB$COLLATION_ID = 6
WHERE (RDB$FIELD_NAME = 'TITEL') AND
(RDB$RELATION_NAME = '[TABELLENNAMEN]');
[/SQL]

TheMiller 29. Okt 2010 12:56

AW: (Deutsche) Sortierung in Firebird
 
Hm, hab nochmal über einen anderen Post nachgedacht. Welchen Nachteil/Vorteil bringt es, wenn ich nicht die DB, sondern die GUI (TreeView) die Einträge sortieren lasse?

Werde ich dadurch Geschwindigkeitseinbußen haben, oder nimmt sich das nicht viel?

chaosben 30. Okt 2010 15:30

AW: (Deutsche) Sortierung in Firebird
 
Ein Vorteil der GUI-Variante wäre, das der Nutzer bei Bedarf die Sortierung ändern könnte.
[Ironie]Und wer ist wichtiger als der Nutzer?[/Ironie] ;)

TheMiller 1. Nov 2010 22:40

AW: (Deutsche) Sortierung in Firebird
 
Hallo.

Wollte mal eine Rückmeldung geben. Ich habe die GUI sortieren lassen. Den entsprechenden Code habe ich auch hier im Forum gefunden...

Vielen Dank


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