Seite 1 von 1

descend und ADS

Verfasst: Sa, 31. Jul 2010 23:52
von Elvis
Hallo,

ich mir schon so viele Post zu diesem Thema gefunden, habe aber keine passende Lösung gefunden.

Ich versuche von Xbase 1.82 über ADS auf eine dbf Datenbank mit ntx Index zuzugreifen.

In diesem Index ist descend enthalten. Die Datenbank wurde unter Clipper erstellt und wird noch in Clipper verwendet.

Sobald ich diesen Index öffne und ein Browse() starten, habe ich noch genau 2 Datensätze übrig.
Ich habe noch nicht mal den Seek gestartet. Wenn ich die Datei ohne Index, oder mit einem Index ohne Descend, browse ist alles ok.

Ich habe schon mit SET COLLATION rumgespielt, aber keine wirkung erzeilt.

Hat jemand eine Idee?

Gruß

Rene

Re: descend und ADS

Verfasst: So, 01. Aug 2010 23:48
von brandelh
Hi,
bei descend() muss man für Clipper Kompatibilität den 2. Parameter setzen, ob das allerdings auch für ADS gilt ?

Grundsätzlich ist man auf der sicheren Seite, wenn man ein 2. Datenfeld nur für die INDEX-Sortierung erstellt ...

Re: descend und ADS

Verfasst: Mo, 02. Aug 2010 9:56
von Tom
Du wirst die Tabelle unter Xbase++ mit ADS reindexieren müssen.

Re: descend und ADS

Verfasst: Do, 05. Aug 2010 20:20
von Elvis
Vielen Dank für die Tipps

Das ist der Index den ich erstellen will

SUBSTR(BSBELEGNR,1,1)+DESCEND(DTOS(BSDATUM)+SUBSTR(BSBELEGNR,2,7),.T.)

und das ist der Fehler

{NIL, 3002, Error 3002: Incorrect parameter count within a function call in index key expression.}

Ohne das den compatibilitäts Paramter klappt es den Index zu erstellen, aber mit leider nicht.

Irgendwelche Tipps? (version 1.82, ADS 5.4)

Rene

Re: descend und ADS

Verfasst: Fr, 06. Aug 2010 0:45
von brandelh
Hi,

könnte es sein, dass in einem der Datumsfelder ein "leeres" Datum steht und descend mit dessen Rückgabewert dann nicht klar kommt ?
Ich würde mal ein dbeval mit der gleichen Funktion aufrufen, aber statt createindex() qout() mit recno() und set alternate Protokoll füllen.
Der Satz, mit dem Problem sollte nach den gedruckten existieren (wenn es denn ein Datenproblem ist).
Tritt der Fehler sofort auf, muss ein ein generelles Problem der Funktionen sein - allerdings sehe ich so auf die Schnelle keinen Parameterfehler.