Betriebssystem Fehler: 1

Fragen rund um diverse Windows-Versionen, ihr Verhalten unter Xbase++ und den Umgang mit der API

Moderator: Moderatoren

Antworten
Werner
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 118
Registriert: Sa, 18. Mär 2006 16:08

Betriebssystem Fehler: 1

Beitrag von Werner »

Hi!

Ich habe einen Kunden, der mit Windows 10 Enterprise arbeitet. Nach dem letzten Update bekommt er folgenden Fehler:

Fehler Base/4
Beschreibung: Betriebssystemfehler
Operation: DBCreateIndex
Thread ID: 1
Betriebssystem Fehler: 1
Aufgerufen von: BROW2(503) ==> INDEX ON grund -> zname to vs_name
SET INDEX TO vs_name

Die Datei grund.dbf enthält alle bisher gerechneten Falldaten.

Was könnte der Grund für diesen plötzlich auftretenden Fehler sein? Bisher und auch bei anderen Kunden lief bzw. läuft diese
Suche nach einem gespeicherten Fall bei jedem Programmstart völlig problemlos.

Vielen Dank im Voraus!

Gruß Werner
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Betriebssystem Fehler: 1

Beitrag von Tom »

Das verweist in aller Regel auf korrupte Indexe (ist das CDX? Index vorher löschen!) oder hineinfunkende Virenscanner.

Es ist nicht sinnvoll, einen Index so zu erzeugen: "INDEX ON MyAlias->FELD TO ...", da "MyAlias->FELD" zum Indexausdruck und in der Indexdatei gespeichert wird. Wenn dieser Index dann geöffnet wird, erwartet er beim Aktualisieren der Daten, dass der Indexausdruck gültig ist, aber das ist er nur, wenn es "MyAlias" gibt. Wenn man die dazugehörige Tabelle unter einem anderen Alias geöffnet hat, schmiert der Index ab. Einfach "INDEX ON FELD TO". Du hast ja die Tabelle sowieso selektiert.
Herzlich,
Tom
Werner
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 118
Registriert: Sa, 18. Mär 2006 16:08

Re: Betriebssystem Fehler: 1

Beitrag von Werner »

Hallo Tom!

Du hast mir im Jahre 2020 eine Antwort gegeben, wie ich auf einen Betriebssystemfehler reagieren könnte, der durch ein SET INDEX ON to vs_name hervorgerufen wurde. (Operation DBCreateIndex).

Ich habe jetzt wieder so ein Problem: Du hast damals empfohlen, die alte Indexdatei vorher zu löschen. Meine Frage ist: wie kann ich das bewirken?

Ich habe es mit DELETE FILE ("ident.NTX") oder mit ERASE FILE ("ident.NTX") und PACK versucht. das hat beides nicht funktioniert:
Die Datei ident.ntx war immer noch da!

Hättest Du vielleicht noch eine andere Idee?

Gruß Werner
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Betriebssystem Fehler: 1

Beitrag von Manfred »

Hi Werner,
eine Datei kann natürlich nur gelöscht werden, wenn sie nicht im Zugriff einer anderen Instanz ist. Versuche es mal mit FErase() und schaue Dir den Fehlercode an, der zurückgeliefert wird. Dann wirst Du sicherlich schlauer sein, was der Grund sein könnte.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Betriebssystem Fehler: 1

Beitrag von Tom »

Wie Manfred schreibt - wenn das nicht geht, ist die Datei im Zugriff. Ich bevorzuge FErase(<cFile>), und bei Indexdateien sollte man bei allen physischen Operationen den Pfadnamen mit angeben; SET DEFAULT wirkt nur beim Öffnen, nicht bei Low-Level-Operationen.
Herzlich,
Tom
Antworten