| 
| Autor | Beitrag |  
| D. Annies 
          Beiträge: 1843
 
 windows 7
 D6  Enterprise, D7  Pers und TD 2006
 
 | 
Verfasst: Sa 18.05.13 05:46 
 
Hi, Delpher,
 wie kann ich die Sortierreihenfolge so ändern, dass z.B. Özdemir als Oezdemir eingeordnet wird und nicht "später"
 ausgegeben wird?
 
 Danke, Detlef
 _________________ ut vires desint, tamen est laudanda voluntas
 |  |  |  
| jaenicke 
          Beiträge: 19326
 Erhaltene Danke: 1749
 
 W11 x64 (Chrome, Edge)
 Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
 
 | 
Verfasst: Sa 18.05.13 07:00 
 
Nach dem order by kannst du die Sortierung mit collate einstellen. Beim 
MS SQL Server gibt es z.B. deutsch oder auch deutsch wie im Telefonbuch.
 Für diesen Beitrag haben gedankt: D. Annies
 |  |  |  
| D. Annies  
          Beiträge: 1843
 
 windows 7
 D6  Enterprise, D7  Pers und TD 2006
 
 | 
Verfasst: Sa 18.05.13 16:23 
 
Moin, moin,
 komme leider nicht weiter, die Phrasen, die ich versucht habe, werden zur
 Laufzeit leider alle abgelehnt, z.B. collate latin1_german2_ci  usw.
 
 Fehlermeldung ist: Allgemeiner SQL-Fehler, unrecognized phrase/keyword.
 
 Noch ne Idee?
 
 LG, Detlef
 _________________ ut vires desint, tamen est laudanda voluntas
 |  |  |  
| Tranx 
          Beiträge: 648
 Erhaltene Danke: 85
 
 WIN 2000, WIN XP
 D5 Prof
 
 | 
Verfasst: Sa 18.05.13 16:34 
 
Hallo, welchen SQL-Server benutzt Du denn? Bei MySQL sollte das mit dem Collate funktionieren. _________________ Toleranz ist eine Grundvoraussetzung für das Leben.
 |  |  |  
| D. Annies  
          Beiträge: 1843
 
 windows 7
 D6  Enterprise, D7  Pers und TD 2006
 
 | 
Verfasst: Sa 18.05.13 16:38 
 
Hi,
 es ist noch die alte BDE-Umgebung, und ein FoxPro-Treiber - leider.
 
 LG, Detlef
 _________________ ut vires desint, tamen est laudanda voluntas
 |  |  |  
| Tranx 
          Beiträge: 648
 Erhaltene Danke: 85
 
 WIN 2000, WIN XP
 D5 Prof
 
 | 
Verfasst: Sa 18.05.13 16:48 
 
Detlef, dann wird wohl das mit Collate nicht funktionieren. Versuche doch mal in der Systemsteuerung die BDE-Verwaltung und dort bei Foxpro-Treiber einen anderen Langdriver (Da gibt es Auswahlen (z.B. DBASE deu cp 850).
 Alternative:  Langdriver auf 'WEurope' ANSI
 _________________ Toleranz ist eine Grundvoraussetzung für das Leben.
 
 Zuletzt bearbeitet von Tranx am So 19.05.13 05:29, insgesamt 1-mal bearbeitet
 Für diesen Beitrag haben gedankt: D. Annies
 |  |  |  
| jaenicke 
          Beiträge: 19326
 Erhaltene Danke: 1749
 
 W11 x64 (Chrome, Edge)
 Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
 
 | 
Verfasst: Sa 18.05.13 21:18 
 
	  |  D. Annies hat folgendes geschrieben  : |  	  | es ist noch die alte BDE-Umgebung, und ein FoxPro-Treiber - leider. | 
 Dann wirst du das wohl manuell hinterher sortieren müssen, wenn du die Daten aus der DB ausliest. Denn meines Wissens wird dort collate generell nicht unterstützt und die wenigen verfügbaren Einstellungen beinhalten glaube ich keine, die dir da helfen kann. Für diesen Beitrag haben gedankt: D. Annies
 |  |  |  
| Tranx 
          Beiträge: 648
 Erhaltene Danke: 85
 
 WIN 2000, WIN XP
 D5 Prof
 
 | 
Verfasst: So 19.05.13 05:36 
 
Was auf vielleicht möglich ist, aber sicher Deine Datenbankperformance sehr stark herabsetzt, ist ein berechnetes Feld, nach dem Du dann sortierst (wenn das geht, ich habe es selber , wegen des Performanceverlustes noch nicht ausprobiert). Du musst dann manuell, wie Jaenicke schreibt, das Sortierfeld und deren Inhalte bearbeiten: 
 
 Oezdemir -> OEZDEMIR
 Özdemir -> OEZDEMIR
 Müller -> MUELLER
 :
 
 Vielleicht ist das ein Weg. Aber - wie gesagt, sicher mit starkem Performanceverlust verbunden. Oder Du erzeugst ein Sortierfeld und dann belegst Du dieses mit den oben geannten Werten aus Deiner Datenbank. Dann musst Du bei jeder Änderung deines Ursprungsfeldes aber auch gleich das Sortierfeld mit ändern!! Und bei jedem Anlegen eines neuen Datensatzes das Sortierfeld mit belegen!
 _________________ Toleranz ist eine Grundvoraussetzung für das Leben.
 Für diesen Beitrag haben gedankt: D. Annies
 |  |  |  
| jaenicke 
          Beiträge: 19326
 Erhaltene Danke: 1749
 
 W11 x64 (Chrome, Edge)
 Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
 
 | 
Verfasst: So 19.05.13 08:11 
 
	  |  Tranx hat folgendes geschrieben  : |  	  | Was auf vielleicht möglich ist, aber sicher Deine Datenbankperformance sehr stark herabsetzt, ist ein berechnetes Feld, nach dem Du dann sortierst (wenn das geht, ich habe es selber , wegen des Performanceverlustes noch nicht ausprobiert). | 
 Das würde nur bei einer Datenmenge im Speicher funktionieren, bei der man zur Laufzeit einen Index darauf setzen kann. TClientDataSet unterstützt das, wäre aber nur in Delphi 6 Enterprise verfügbar, die kostenlosen Versionen Delphi 7 PE und TD (aus den Profilangaben) haben das beide nicht. Auch Alternativen wie TADMemTable aus AnyDAC/FireDAC könnten das, aber auch das kostet ja.
 Insofern ist die sinnvollste Variante schon alles aus der DB auszulesen und die Daten manuell zu behandeln. Es geht ja hier vermutlich immer noch um Schülerdaten, und selbst wenn das dann 1000 Datensätze wären, das könnte man ja in Millisekunden alles selbst sortieren usw. (etwas ähnliches habe ich vor einigen Jahren mal gemacht, da dauerte dann ein Live-Filter auf alle Felder bei mehreren hundert Datensätzen in einer eigenen Datenstruktur nur wenige Millisekunden). Für diesen Beitrag haben gedankt: D. Annies
 |  |  |  
| D. Annies  
          Beiträge: 1843
 
 windows 7
 D6  Enterprise, D7  Pers und TD 2006
 
 | 
Verfasst: So 19.05.13 15:01 
 
Hi, Sebastian,
 mittlerweile konnte ich eine IdNr mit auslesen und danach sortieren.
 
 Danke für deine Mühe.
 
 LG, Detlef
 _________________ ut vires desint, tamen est laudanda voluntas
 |  |  |  |