Scopes und korrupte Indizee [Erledigt]

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

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:

Scopes und korrupte Indizee [Erledigt]

Beitrag von Jan »

Ein Erfahrungsbericht:

Anwender bei meinem Kunden beklagten sich, das ein Programmmodul nicht mehr funktionierte. Was ansich nicht sein konnte, denn daran ist nichts geschraubt worden, und bis gestern Mittag lief das auch einwandfrei.

Also Fehlersuche: Das Problem taucht auf nach einem DbSetScope() mit den Bedingungen SCOPE_TOP und SCOPE_BOTTOM. Das benutze ich eher seltener, meist passt der SCOPE_BOTH sehr gut.

Das Resultat war: Immer landete der nach dem Scope-Setzen auf EoF(). Was ansich nicht sein konnte, da die Suchbegriffe eindeutig im Scope-Rahmen lagen. Vor lauter Frust habe ich dann davor ein DbSeek() gemacht. Und siehe da: Der Begriff wurde gefunden! Im sofort darauf folgenden Scope-setzen stand der aber wieder auf EoF()

Also habe ich mit dem SCOPE_TOP-Wert gespielt. Tatsächlich gab es eine Grenze, ab der der Suchbegriff korrekt verarbeitet wurde. Alle SCOPE_TOP-Werte, die kleiner waren, brachten wieder ein EoF().

Das Ergebnis für mich: Das war ein teilkorrupter Index. Alles über einem bestimmten Eintrag passte, alles darunter war korrupt. Und da der Scope mit dem niedrigen Wert beginnt, der im korrupten Bereich lag, konnte der niemals etwas ausfiltern.

Etwas verwirrend war das für mich, denn ich hatte erwartet, das der Index OK ist. Denn DbSeek() funktionierte ja. Aber Scopes sind da halt etwas feinfühliger, und teilkorrupte Indizee sind mir in der Form auch noch nie untergekommen. Es wird Zeit, das ganze Projekt von DBFNTX auf FOXCDX umzustellen, mit den Indizee hatte ich noch nie Probleme.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Antworten