Index-Fehler?

Advantage Database Server

Moderator: Moderatoren

Antworten
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Index-Fehler?

Beitrag von Jan »

Nach der Umstellung haben wir gerade ein Problem festgestellt. Es gibt ein Feld "titel", auf dem ein Index "Upper(titel)" liegt. Schaue ich mir das nun im Browse an, dann stehen da zwei Sätze in genau dieser Reihenfolge:
Skimmer-Filter
Skimmer 1
Wie kann das sein? Das "-" steht in der ANSI-Tabelle hinter dem " ". Und unter FOXCDX (da war die Tabelle aber auch noch ASCII, was in dem Bereich aber Null Unterschied machen sollte) hatte das auch funktioniert.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Index-Fehler?

Beitrag von UliTs »

Wer hat den Index erstellt? Ich vermute der ADS.
Es gibt diverse Länder- und Zeichensatzeinstellungen. Prüf mal, was beim ADS eingestellt ist. Auch in welchem Zeichensatz die Daten in der DBF-Tabelle stehen könnte interessant sein.

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Index-Fehler?

Beitrag von Jan »

Hallo Uli,

Grundsätzlich: Die dbf sind alle ANSI. Eingestellt ist im ADS ANSI und GERMAN. Die Indizee sind aus meinem Prorgamm heraus erstellt worden, aber auf die dbf im DD.

Aber: Das sollte doch alles keine Rolle spielen. Lerzeichen und Minuszeichen sind im Zeichensatz so weit oben, das die in jeder Sprache und egal ob ANSI oder OEM immer korrekt sortiert werden sollten. Wir reden ja hier nicht von Umlauten oder sowas.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Index-Fehler?

Beitrag von UliTs »

Jan hat geschrieben:Aber: Das sollte doch alles keine Rolle spielen. Lerzeichen und Minuszeichen sind im Zeichensatz so weit oben, das die in jeder Sprache und egal ob ANSI oder OEM immer korrekt sortiert werden sollten. Wir reden ja hier nicht von Umlauten oder sowas.
So wie ein ä nach dem z kommt :evil:
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: Index-Fehler?

Beitrag von nightcrawler »

Hallo an,
das ist dummerweise echt so...ein Leerzeichen kommt doch relativ weit hinten (wenn man ein paar Testdaten eingibt sieht man die Reihenfolge - <leerzeichen> _ +). Früher gab es mal ein Utility ansichr.exe, mit welchem man die ansi.chr öffnen konnte und eine eigene Collation mit der Option 'ignore symbols' anlegte. Damit funktioniert diese Sortierung wie gewünscht. Ich habe das gerade mit einem aktuellen ansi.chr file getestet, aber irgendwie hat sich deren Aufbau verschoben und die Datei ist nicht lesbar. Eine aktuelle Lösung habe ich nicht.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Index-Fehler?

Beitrag von UliTs »

Wie ist denn die Sortierung, wenn man

Code: Alles auswählen

select * from Tabelle order by titel
verwendet?

Edit: ich habe es gerade mit einer temporären ADT-Tabelle versucht: da kommt auch zuerst der Datensatz mit dem Leerzeichen und anschließend der Datensatz mit dem Minus-Zeichen.

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: Index-Fehler?

Beitrag von nightcrawler »

UliTs hat geschrieben:Wie ist denn die Sortierung, wenn man

Code: Alles auswählen

select * from Tabelle order by titel
verwendet?
gleich, weil dieselben Funktionen zum Ermitteln des Sortierschlüssels verwendet werden.
EDIT:
Aber wenn zum Sortieren dann eine Funktion verwendet wird, klappt es:

Code: Alles auswählen

select * from tabelle order by replace(titel,' ','-')
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Index-Fehler?

Beitrag von Jan »

Joachim,

das klappt leider eben nicht. Denn damit würde ich ja nur alle Titel mit einem Leerzeichen denen gleichsetzen mit einem Minus. Aber die mit Leerzeichen müssen vor dem Minus stehen, wenn das wirklich korrekt sein soll.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Index-Fehler?

Beitrag von UliTs »

Hast Du ein Zeichen, welches im Titel nicht vorkommt, z.B. "@" ? Dann könnte folgendes funktionieren:

Code: Alles auswählen

select * from tabelle order by replace(replace(replace(titel,'-','@'),' ','-'),'@',' ')
Wenn Du kein solches Zeichen hast, könntest Du '@' durch eine Zeichenfolge ersetzen, die nicht vorkommt, z.B. '[IchKommeNichtVor]'.

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Antworten