Fehlermeldung warum?

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

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:

Fehlermeldung warum?

Beitrag von Jan »

Ich habe gerade das hier von einem Kunden erhalten:
Xbase++ Version : Xbase++ (R) Version 2.00.785
Betriebssystem :Windows 10 10.00 Build 15063
------------------------------------------------------------------------------
oError:args :
-> VALTYPE: C VALUE:Wendel VI
oError:canDefault : .F.
oError:canRetry : .F.
oError:canSubstitute: .T.
oError:cargo : NIL
oError:description : Unbekannte Funktion
oError:filename :
oError:genCode : 21
oError:operation : ALLTRIM
oError:osCode : 0
oError:severity : 2
oError:subCode : 2002
oError:subSystem : BASE
oError:thread : 1
oError:tries : 0
Öhm ... AllTrim() ist eine unbekannte Funktion?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Fehlermeldung warum?

Beitrag von georg »

Hallo, Jan -


könntest Du uns die Zeile im Code zeigen? Und wenn AllTrim() angeblich unbekannt ist, hast Du im Code vorher die Funktion schon mal verwendet? Was passiert, wenn Du AllTrim() durch Trim(RTrim()) ersetzt?
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen 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: Fehlermeldung warum?

Beitrag von Martin Altmann »

Unter Umständen hilft es auch schon, das Leerzeichen zwischen dem m und der öffnenden Klammer zu entfernen 8)
: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: Fehlermeldung warum?

Beitrag von Jan »

Moin Martin,

Witzbold :shock:

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: Fehlermeldung warum?

Beitrag von Jan »

Hallo Georg,

ich benutze eigentlich grundsätzlich AllTrim(). Kein Trim(), RTrim(), LTrim(). Und das AllTrim() kommt stapelweise im Code vor.

Und hier ist im :dataLink einer Funktion, die mir mein eigenes SLE baut. Das ist immer noch XbpSle, aber ich habe mir da ein paar gewünschte Standard-Einstellungen schon vorbelegt.

Was aber auch heißt: Durch diese Funktion läuft der ständig. Weil es dauernd den Aufruf der SLE-Funktion gibt. Und da arbeiten auch ziemlich viele Nutzer mit. Da muß also irgendwas anderes komisch gelaufen sein. Was auch immer ...

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Fehlermeldung warum?

Beitrag von georg »

Hallo, Ihr beiden -


Martin's Vermutung sollte bereits vom Compiler "erwischt" werden, wenn sie nicht direkt korrekt "übersetzt" wird.

Jan, ich bin mir nicht sicher, dass "AllTrim" die unbekannte Funktion ist.

Code: Alles auswählen

cFeld := AllTrim(oVar:fieldgett(2))
könnte eventuell auch zu dem Fehler führen, da der Compiler Methode nicht auf ihre korrekte Schreibweise prüfen kann, bzw. eerst zur Laufzeit geprüft wird, ob die Methode/Instanzvariable existiert.

Daher (wie üblich) die Frage nach dem Code-Ausschnitt.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen 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: Fehlermeldung warum?

Beitrag von Martin Altmann »

Georg,
georg hat geschrieben: Do, 27. Jul 2017 13:53Martin's Vermutung sollte bereits vom Compiler "erwischt" werden, wenn sie nicht direkt korrekt "übersetzt" wird.
nicht, wenn es sich um einen Codeblock handelt ;-)

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: Fehlermeldung warum?

Beitrag von Jan »

Wenn da irgendwo ein Leerzeichen zu viel gewesen wäre (was es nicht ist), dann hätte der ja nicht wegen einer unbekannten Funktion gemeckert. Sondern eine unbekannte Variable oder sowas angemeckert.

Und ja, im Codeblock. Halt de :DataLink. Aber eben auch ständig aufgerufen, und nie hat der gemckert.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Fehlermeldung warum?

Beitrag von georg »

Da kommt ein Mann in eine Zoofachhandlung. Grimmigen Blickes geht er auf den Verkäufer zu, der hinter der Theke steht. Er hebt die Hand, in der er einen Jutebeutel hält. Er dreht den Beutel um, schüttelt ihn, und ein toter Papagei fällt auf den Tresen. Er blickt dem Verkäufer in die Augen und sagt: "Den habe ich gestern hier gekauft!" Darauf der Verkäufer: "Komisch, das hat der hier nie gemacht!"

Was will ich damit sagen? Es gibt immer ein erstes Mal.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
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: Fehlermeldung warum?

Beitrag von Manfred »

genau, welcher Papagei ziegt sich selbst einen Jutesack über? Da muß man doch ersticken....
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
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: Fehlermeldung warum?

Beitrag von Jan »

Ja klar, macht Euch ruhig lustig über mich. Mit mir könnt Ihr das ja machen.

Wobei ich das schon sehr merkwürdig finde. Gestern hatte ich im gleichen Projekt noch so einen merkwürdigen Fehler: Bei einem DbCloseAll() kommt ein Absturz mit Fehler 8999. Die Nummer liebe ich ja sowieso, weil die einem überhaupt garnichts sagt. Aber warum geht eni DbCloseAll() nicht? DAS ist doch die Frage. Ich hab das dann mal aufgebröselt, alle offenen alias per WorkSpaceList() eingelesen und in einer FOR...NEXT-Schleife mit DbCloseArea() geschlossen. Insgesamt sind da sechs dbf offen. Und immer bei einer gibt der mir dann den 8999. Zuerst war das immer die erste. Nach mehreren Versuchen auch mal die letzte.

Manchmal irritiert mich Xbase++ ...

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: Fehlermeldung warum?

Beitrag von Tom »

Relationen lösen und Scopes löschen, bevor das DbCloseArea erfolgt. Oder Fehler einfach in der Errorsys abfangen und ignorieren, er hat nämlich keine Bedeutung. Die Tabellen sind zu.
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: Fehlermeldung warum?

Beitrag von Jan »

Hallo Tom,

Relationen benutze ich überhaupt nicht. Scopes werden grundsätzlich sofort nach Gebrauch wieder gelöscht, genau wie Filter.

Aber der Hinweis, das die ohnehin zu sind, den schau ich mir mal näher an. Wobei ich das nicht wirklich glaube. Ich hatte das ja gestern mal in die FOR..NEXT-Schleife gesetzt, und bin das im Debugger durchgegangen. Nach einem missglückten Close-Versuch stand der der betreffende Alias immer noch in der WorkSpaceList() drin. Das ist mal was für heute Abend ...

An eine Sequenze-Schleife hatte ich auch schon gedacht, sowas mache ich mit vielen anderen Db-Funktionen schon länger. Mir war/ist im Moment nur noch nicht bewusst, was ich da genau machen sollte. Abgesehen davon, das der Laufzeitfehler nicht mehr an den Benutzer durchschlägt. Ich hatte eventuell daran gedacht, das in eine Zählerschleife mit leichten Verzögerungen zu bauen. War mir aber nicht sicher, ob das letztendlich wirklich helfen würde.

Aber meine wichtigste Frage ist: Warum passiert sowas überhaupt? Ich hatte dieses Thema ja mit AllTrim() angefangen. Jetzt kommt DbCloseAll()/DbCloseArea() dazu. Roland hat da auch sporadisch Probleme mit Dingen, die sonst immer einwandfrei liefen. Wie kann sowas passieren?

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

Beitrag von Wolfgang Ciriack »

Virenscanner ?
Viele Grüße
Wolfgang
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: Fehlermeldung warum?

Beitrag von Jan »

Wäre natürlich eine Möglichkeit. Werd ich ebenfalls heute Abend mal testen. Aber dann hab ich natürlich ein Problem: Soll ich meinen Kunden sagen, mach bitte Deinen Virenscanner aus, wenn Du meine Programme laufen läßt? Werden die mir einen Vogel zeigen. Auch wenn ich das eingrenze auf mein Programm-Verzeichnis.

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: Fehlermeldung warum?

Beitrag von Tom »

Die Engine will möglicherweise noch Puffer durchschreiben, sich des Tabellenobjekts entledigen und die Handles freigeben. Irgendwas davon schlägt fehl. Vielleicht ist das Handle längst ungültig, was man aber nicht bemerken würde, bis auf Betriebssystemebene irgendwie in der Datei herumgewurschtelt wird.

Du hast doch den direkten Draht zu Alaska. Frag einfach dort. Wir spekulieren hier nur.
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: Fehlermeldung warum?

Beitrag von AUGE_OHR »

ich würde den PC mal neu booten ...

Frage : kannst du eine Demo erstellen wo man das Problem nachvollziehen kann ?

es dürfte wohl jedem klar sein das ALLTRIM() nicht so einfach einen Fehler produziert.
das der Fehler auftritt muss also vorher in deinem Code sein der sich dann bemerkbar macht.

p.s. ich würde kein ALLTRIM() "im" o:Datalink schreiben sondern es bei GETDATA() verwenden.
gruss by OHR
Jimmy
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Fehlermeldung warum?

Beitrag von UliTs »

Gibt es hier inzwischen eine Lösung?
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
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: Fehlermeldung warum?

Beitrag von Jan »

Moin Uli,

leider nein. Der Fehler ist aber auch nie wieder aufgetreten. Sehr merkwürdig ...

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