Frage zu Fehlermeldung

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

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:

Frage zu Fehlermeldung

Beitrag von Jan »

Moin,

was genau ist der Fehler hier?
Xbase++ Version : 1542
Betriebssystem : Windows 10 2009 Build 19042
------------------------------------------------------------------------------
oError:args :
-> VALTYPE: C VALUE:C:\Programmverzeichnis\Uuid
-> VALTYPE: A VALUE:{{"RIN", "N", 20, 0}, {"UUID", "C", 36, 0}}
oError:canDefault : .T.
oError:canRetry : .F.
oError:canSubstitute: .F.
oError:cargo : NIL
oError:description : Datei kann nicht erzeugt werden
oError:filename :
oError:genCode : 70
oError:operation : DbCreate
oError:osCode : 0
oError:severity : 2
oError:subCode : 8999
oError:subSystem : BASE
oError:thread : 1
oError:tries : 0
Da soll per DbCreate eine neue dbf erstellt werden. Klappt aber nicht. Mit einem Betriebssystemfhler 0 und einem 8999. Das ist doch Blödsinn. Was also ist da wirklich los?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: Frage zu Fehlermeldung

Beitrag von Marcus Herz »

70 XPP_ERR_CREATE File can not be created
C:\Programmverzeichnis\Uuid
Soll das der Dateiname sein?!?
Oder Recht?
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
BJelinek
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 218
Registriert: Sa, 02. Jun 2012 20:57
Wohnort: 73257 Köngen
Hat sich bedankt: 9 Mal
Danksagung erhalten: 3 Mal

Re: Frage zu Fehlermeldung

Beitrag von BJelinek »

Fehlt da nicht der Filename :?:

Wie soll die DBF-Datei heißen :?:
Grüße
Bernd

Mitglied des Deutschsprachige Xbase-Entwickler e. V.
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: Frage zu Fehlermeldung

Beitrag von Jan »

Moin,

es soll die uuid.dbf im Pfad C:\Programmverzeichnis\ erstellt werden

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: Frage zu Fehlermeldung

Beitrag von Marcus Herz »

Kannst du eine Datei UUID.DBF mit der Hand in dem Verzeichnis anlegen? Nur um Rechte und OS abzuklären.
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
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: Frage zu Fehlermeldung

Beitrag von Jan »

Moin Marcus,

genau das ist ja das Problem. wenn ich den Code bei mir durchlaufen lasse klappt das absolut sauber. Aber bei manchen Kunden scheppert es mit der Fehlermeldung oben.

Rechte müsste es immer ausreichend geben. Der Pfad ist der Pfad mit dem auch alle anderen dbf im Programm geöffnet wrden, ist also auch korrekt. Abgesehen davon müsste es dann ja auch einen passenden osError gben, oder? Und das ist ja auch mein Problem: Was soll da der Fehler 8999? Der ist doch absolut nichtssagend. Und warum kann eine Datei nicht angelegt werden ohne OsError?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Frage zu Fehlermeldung

Beitrag von Martin Altmann »

Moin Jan,
hast du vorab die passende DBE definiert/gesetzt? Immer? In jedem Fall?

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
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: Frage zu Fehlermeldung

Beitrag von Jan »

Moin Martin,

jupp. Es gibt nur die dbesys, die das regelt. Muß also immer korrekt sein.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Frage zu Fehlermeldung

Beitrag von AUGE_OHR »

moin,

vielleicht ein anderer Dateinamen als UUID ?
gruss by OHR
Jimmy
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: Frage zu Fehlermeldung

Beitrag von Jan »

Jimmy,

schwierig. Weil der im Programm halt so genutzt wird. Und bei den meisten Kunden klappt das ja auch sauber. Aber bei manchen halt nicht - und nicht nur bei einem. Und warum kann ein ganz normaler Dateiname solch eine nichtssagende Fehlermeldung produzieren?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
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: Frage zu Fehlermeldung

Beitrag von Tom »

Ich kann diesen Code:

Code: Alles auswählen

a := {{'TEST','C',30,0},{'TEST2','C',60,0}}
c := "c:\Programmverzeichnis\uuid"
DbCreate(c,a)
problemlos ausführen. Es entsteht "UUID.DBF" und enthält die beiden fraglichen Felder. Der Ordner war natürlich schon vorhanden.

Ich habe leider die ausführliche Fehlerhilfe von Andreas Gehrs-Pahl gerade nicht im Zugriff, wo möglicherweise etwas über GenCode 70 im Kontext von Fehler 8999 steht. Ich nehme an, die Struktur ist falsch. Ich bekomme jedenfalls einen "Datei kann nicht erzeugt werden" bei DbCreate, Base 8999, GenCode 70, wenn ich im Strukturarray falsche Typen einfüge, also z.B. die 'C' durch 'X' und 'Y' austausche.
Herzlich,
Tom
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: Frage zu Fehlermeldung

Beitrag von Jan »

Hallo Tom,

Danke für den Hinweis mit dem Feldtypen. Wenn der genau in diesen Fehler läuft wäre das ja eventuell ein Ansatz. Wobei der Code halt wie beschrieben bei den meisten Kunden ja einwandfrei durchläuft, auch bei mir in den Tests. Warum also kann dieses Problem bei anderen Kunden auftreten? Das ist lt. errorlog auch meist Windows 10 in relativ aktuellen Versionen. Wobei das log halt leider nicht hergibt ob das nun 32 oder 64 Bit ist. Was aber letztendlich egal sein muß.

Die Tabelle von Andreas sagt zu genCode 70 auch nur "XPP_ERR_CREATE File can not be created". Und bei 8999 "Associated with: "70:File can not be created" Caused by: "OrdCreate()"": Naja, das merk ich ja auch.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
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: Frage zu Fehlermeldung

Beitrag von Tom »

Bei mir hat es mit OrdCreate() nichts zu tun; ich erzeuge nur die Tabelle und keine Indexe - aber diese Hilfe von AGP basiert auch zu einem Gutteil auf Mutmaßungen und Beobachtungen. Und ich bin sicher, dass es an der Struktur liegt - ich bekomme beim DbCreate() den GenCode 70, und Du ja auch (und nicht etwa beim OrdCreate). Ist die Struktur statisch/hardcodiert oder wird die aus anderen Daten erzeugt? Jedenfalls stimmt mit hoher Wahrscheinlichkeit ein Typ nicht, ist ein Feldname oder eine Feldlänge unzulässig oder etwas in der Art. Du solltest die Struktur an dieser Stelle loggen, wenn Du auf die Ursache kommen willst.
Herzlich,
Tom
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Frage zu Fehlermeldung

Beitrag von Wolfgang Ciriack »

Vielleicht doch ein Rechteproblem ? Lesen und schreiben ja, aber nicht neu erzeugen ? Oder Virenscanner ?
Viele Grüße
Wolfgang
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: Frage zu Fehlermeldung

Beitrag von Tom »

Nein, es ist kein Rechteproblem. Da bekommt man andere GenCodes, "Zugriff verweigert" und ähnliche. Es ist definitiv ein Fehler in der gewünschten Tabellenstruktur. Dieser Code erzeugt genau den von Jan gewünschten Fehler (Ordner vorhanden, Schreibrechte):

Code: Alles auswählen

a := {{'TEST','X',30,0},{'TEST2','Y',60,0}}
c := "c:\Programmverzeichnis\uuid"
DbCreate(c,a)
Herzlich,
Tom
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: Frage zu Fehlermeldung

Beitrag von Jan »

Hallo Tom,

alles nachvollziehbar. Aber: Wie passt das zu der Fehlermeldung? In der schreibt ja die Runtime selber absolut legale Feldtypen rein.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
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: Frage zu Fehlermeldung

Beitrag von Tom »

F*ck, stimmt. Da ist das Array ja enthalten. Mein Code läuft damit auch durch. Ist die Datei allerdings schon vorhanden und schreibgeschützt (z.B., weil sie geöffnet ist), feuert ebenfalls GenCode 70:

Code: Alles auswählen

oError:args         :
          -> VALTYPE: C VALUE: c:\Programmverzeichnis\uuid
          -> VALTYPE: A VALUE: {{"RIN", "N", 20, 0}, {"UUID", "C", 36, 0}}
oError:canDefault   : J
oError:canRetry     : N
oError:canSubstitute: N
oError:cargo        : NIL
oError:description  : Datei kann nicht erzeugt werden
oError:filename     : 
oError:genCode      :         70
oError:operation    : DbCreate
oError:osCode       :          0
oError:severity     :          2
oError:subCode      :       8999
oError:subSystem    : BASE
oError:thread       :          1
oError:tries        :          0
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Frage zu Fehlermeldung

Beitrag von AUGE_OHR »

hi,
Tom hat geschrieben: Di, 04. Jan 2022 10:04 Ist die Datei allerdings schon vorhanden und schreibgeschützt (z.B., weil sie geöffnet ist), feuert ebenfalls GenCode 70:
guter Tip VOR dem Create zu überprüfen OB die Datei schon existiert
gruss by OHR
Jimmy
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: Frage zu Fehlermeldung

Beitrag von Jan »

Hallo Tom und Jimmy,

korrekter Einwand. Aber gilt hier nicht. Das ist eine Updatefunktion. Die kontrolliert ob es diese Tabelle schon gibt. Und nur wenn nicht soll die erstellt werden.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
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: Frage zu Fehlermeldung

Beitrag von Tom »

Hallo, Jan.

Dann ist es ohne ein Stück Code reines Stochern im Trüben. Ich habe gerade noch auf drei andere Arten diesen Fehler erzeugen können. Wenn Du aber sagst, dass das Verzeichnis vorhanden ist, dass ausreichende Rechte vorliegen, dass die Datei definitiv weder bereits vorhanden, noch vorhanden und anderswo geöffnet sein kann, dann fällt mir nicht mehr ein, wie man da was falsch machen könnte. Vorausgesetzt, man hat das Vorher wirklich richtig gemacht. Also z.B. korrekt abgefragt, ob die Tabelle schon existiert. Mit dem richtigen Namen usw. Und es ist auszuschließen, dass hier extrem ungünstiges Timing eine Rolle spielt. Was der Fall sein könnte, wenn dieser Prozess an mehreren Arbeitsplätzen nahezu gleichzeitig gestartet worden wäre.
Herzlich,
Tom
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: Frage zu Fehlermeldung

Beitrag von Jan »

Hallo Tom,

ein Mehrfachnutzen kann sehr sicher ausgeschlossen werden. Aber nicht vollständig. Wenn der User das Programm versehentlich durch zu viele schnelle Mausklicks doppelt öffnet könnte der tatsächlich mehrere Instanzen am Laufen haben. Das Programm ist zwar multiuser- und netzwerkfähig. Wird aber eigentlich nie im Netzwerk genutzt.

Die Abfrage sollte korrekt sein. Ich hatte das gestern ja extra noch mal ausgetestet. Wenn ich die Datei manuell lösche, und dann das Programm neu starte, dann wird alles absolut korrekt durchlaufen.

Es gibt diese Dateierstellung noch einmal. Wenn ein neuer Mandant angelegt wird, und dann dort die Tabelle ebenfalls neu angelegt wird. Die DbCreate()-Zeile ist absolut identisch, hatte ich auch schon verglichen. Und hier klappt das immer. Wenn ich da eine Fehlermeldung bekomme ist das immer aus dem Update-Modul. Nie aus dem Mandant-Neu-Modul.

Das mit den Rechten könnte ich mir allenfalls noch so vorstellen, daß die Installation mit Admin-Rechten durchgeführt wurde, und hier dann der Programmstart mit Standard-Rechten. Und der "normale" User dann keine Rechte haben könnte. Das halte ich zwar für sehr vage, aber was anderes fällt mir da ehrlich gesagt nicht ein. Könnte ich mal heute Abend austesten.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
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: Frage zu Fehlermeldung

Beitrag von Tom »

Hallo, Jan.

Mit falschen/fehlenden Rechten im Verzeichnis lässt sich der Fehler auch reproduzieren. Ebenfalls GenCode 70/Base 8999.
Herzlich,
Tom
Bernd Reinhardt
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 159
Registriert: So, 16. Apr 2006 11:12
Wohnort: Öhringen

Re: Frage zu Fehlermeldung

Beitrag von Bernd Reinhardt »

Hallo Jan.

Ich habe bei meinen Kunden auch das Problem das es immer mal wieder zum Absturz kommt. Z. B. auch bei einfachem Kopieren von Dateien vom Server auf die lokale Platte.
Drücke ich dann ignorieren geht es weiter.
Scheint hier ein Problem mit den Rechten / Sperren von Windows oder Virenscanner zu sein.
Ich habe das so gelöst das ich einen Errorhandler verwende und es somit im Hintergrund für den Kunden mehrfach versuche, bzw. ich verwende dann für den einen Programmdurchlauf eine ältere Datei.
Beim nächsten Programmdurchlauf geht das mit dem Kopieren wieder.

Bei einem PC im Netzwerk kommt der Fehler mehrfach bei einem anderen PC kommt der Fehler nicht vor. Gleiches OS und gleiches Programm.

Was ich eindeutig nachvollziehen konnte ist, das Kaspersky wenn ich viel mit temporären Dateien und indexe arbeite, plötzlich das erzeugen einer Datei verhindert. Das Programm läuft dann eine Weile und stürzt plötzlich bei einer Dateifunktion (create file) ab.
Ohne Kaspersky läuft das Programm dann durch.

Gruß
Bernd
Bernd Reinhardt
fa.reinhardt@gmx.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: Frage zu Fehlermeldung

Beitrag von Jan »

Hallo Bernd,

interessanter Denkansatz. Ähnlich wie das oben schon angesprochene Problem der Rechte, halt nur auf einer anderen Ebene.

Allerdings sind alle Programmdateien bei mir zertifiziert. Um möglichst genau das zu vermeiden. Wobei ich tatsächlich schon beobachten konnte bei einzelnen Kunden, das der Virenscanner einzelne Dateien trotzdem einfach in die Quarantäne verschoben hat, weil der meinte die sei von einem Virus befallen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
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: Frage zu Fehlermeldung

Beitrag von Jan »

Ich habe gestern mal ein paar Ideen aus der Diskussion hier umgesetzt. Und bin gespannt wie sich das dann nach dem nächsten Programmupdate (vermutlich kommende Woche) entwickelt. Ich werde dann darüber berichten.

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