Ich habe eine Frage zur Änderung der Sortierung bei der Anzeige von Mitgliedern in einem Formular.
Ich habe ein Formular erstellt, das Mitgliedernamen und andere Daten auflistet. Die Daten für die Anzeige sind das Ergebnisse von Datenbankabfragen, die in Lesefeldern stattfinden und als Formularfelder eingebunden werden.
In der Ergebnisliste werden die Umlaute ä, ö, ü nicht wie erwartet sortiert. Die Namen mit Umlauten werden also wie
Name
=====
Bad
Bae
Baf
Bäd
sortiert. Der relevante Code im Lesefeld ist
Code: Alles auswählen
DBIterator itm = Einstellungen.getDBService().createList( Mitglied.class );
itm.addFilter( " ( austritt IS NULL OR austritt >= ? ) ", new Object[] { new java.sql.Date( System.currentTimeMillis() ) } );
itm.join( " adresstyp " );
// ... noch mehrere filter, joins und limit
itm.setOrder( " ORDER BY name, vorname COLLATE latin1_german2_ci" );
Der Server (MySQL 5.7) hat die Systemvariablen (laut MySQL Workbench 8.0)
collation_connection, collation_database und collation_server
alle auf
latin1_swedish_ci stehen.
Die jdbc-Anweisung unter "C:\Program Files\jameica\cfg" (alles Windowsclients) heißt:
Code: Alles auswählen
database.driver.mysql.jdbcurl=jdbc\:mysql\://127.0.0.1\:3306/jverein?useUnicode\=Yes&characterEncoding\=ISO8859_1
Vielen Dank für Eure Hinweise
GV