Seite 1 von 1

Index on - Betriebssystemfehler -

Verfasst: Do, 07. Nov 2019 11:24
von Werner
Hi!

Ich habe mit den Code:

INDEX ON ((ident_00*10)+ident_01) to &sv_ident
SET INDEX ON &sv_ident
SEEK((ident0*10)+ident1)

Die Werte sind in diesem Moment folgende: ident_00 = 76234 bzw. 762340 und ident_01 = 40729 in der Summe: 803069

folgenden Fehler gefangen:

oError:args -> VALTYPE: C VALUE: I:\RGB\Archiv_c\vs_ident.ntx
-> VALTYPE: B VALUE {II ( (ident_00*10)+ident_01)}
-> VALTYPE: U VALUE: NIL
oError:canDefault : J
oError:canRetry : J
oError: can Substutute : N
oError:cargo : NIL
oError:description : Betriebssystemfehler
oError:filename :
oError:genCode : 40
oError:operation : DbCreateIndex
oError:osCode : 1
oError:severity : 2
oError:subcode : 4
oError:subSystem : BASE
oError:thread : 1
oError:tries : 1

Das benutze Betriebssystem ist: WINDOWS 06.01.Build 07601 Service Pack

Kann mir jemand helfen, diesen Fehler auszumerzen? Vielen Dank im Voraus!

Gruß Werner

Re: Index on - Betriebssystemfehler -

Verfasst: Do, 07. Nov 2019 11:57
von Koverhage
Ich würde folgendes vermuten:
Virenscanner (98%)
Indexkey ist bereits vorhanden, abr keine Duplikate erlaubt (2%)

Re: Index on - Betriebssystemfehler -

Verfasst: Do, 07. Nov 2019 13:55
von georg
Hallo, Werner -


der Abbruch geschieht beim Erstellen des Index, korrekt?

Hat dieser Index-Ausdruck in der Vergangenheit funktioniert?

Persönlich habe ich schlechte Erfahrungen mit einem numerischen Index-Ausdruck gemacht, ich wandle das normalerweise in einen String um, also z.B.

Code: Alles auswählen

Str(ident_00*10)+ident_01))
Oder: Du erstellst den Index auf Laufwerk I: - ist das zum Zeitpunkt der Erstellung noch verfügbar? Der Fehlercode 40 (genCode) könnte darauf hindeuten.

Re: Index on - Betriebssystemfehler -

Verfasst: Fr, 08. Nov 2019 11:05
von komnick
Hallo Werner,

ist der Indexkey wirklich so gewollt?
Mich wundert, dass Datenbankfeld ident_01 nicht nur einstellig ist.
Bei einem fünfstelligen Feld hätte ich als Key

ident_00 * 100000 + ident_01

vermutet, bzw. selber eher

str(ident_00,5)+str(ident_01,5)

genommen.

Gruß
Martin