if 0==0 -> Fehlermeldung

Sonstiges (nicht kategorisierbar)

Moderator: Moderatoren

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:

if 0==0 -> Fehlermeldung

Beitrag von Martin Altmann »

Moin,
mal ein interessanter Fehler:

Code: Alles auswählen

------------------------------------------------------------------------------
FEHLERPROTOKOLL von "c:\easydogw\EASYSHOW.EXE" Datum: 28.03.2013 22:05:08

Xbase++ Version     : Xbase++ (R) Version 1.90.355
Betriebssystem      : Windows 7 06.01 Build 07601 Service Pack 1
------------------------------------------------------------------------------
oError:args         :
          -> VALTYPE: N VALUE: 0
          -> VALTYPE: N VALUE: 0
oError:canDefault   : N
oError:canRetry     : N
oError:canSubstitute: J
oError:cargo        : NIL
oError:description  : Parameter hat falschen Typ
oError:filename     :
oError:genCode      :          2
oError:operation    : <0>==<0>
oError:osCode       :          0
oError:severity     :          2
oError:subCode      :          3
oError:subSystem    : BASE
oError:thread       :          1
oError:tries        :          0
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Aufgerufen von _PRAESENTIEREN:SHOWCODE(1571)
Aufgerufen von (B)_PRAESENTIEREN:INITWETTBEW(1453)
Aufgerufen von DSXBROWSE:HANDLEEVENT(10526)
Aufgerufen von DSDIALOG:SHOWMODAL(3578)
Aufgerufen von PRAESENTIEREN:CREATE(2375)
Aufgerufen von PRAESENTIERE(2775)
Aufgerufen von (B)ERZEUGEMENU(416)
Aufgerufen von APPEXEC(281)
Aufgerufen von MAIN(983)
Die betreffende Zeile lautet:

Code: Alles auswählen

1570:	if nVal == 0
1571:		cText := ""
1572:	else
Also eigentlich ja wohl eher Zeile 1570 - aber der Fehler an sich macht keinen Sinn und Ursache ist sicherlich was anderes.

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.
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: if 0==0 -> Fehlermeldung

Beitrag von UliTs »

Ich würde den Fehler eher nervig nennen :D .
Schau Dir den Quellcode mal im Hexeditor an.
Vielleicht entdeckt man dann ja eine Erklärung.
Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: if 0==0 -> Fehlermeldung

Beitrag von brandelh »

Könnte es sein, dass das eine 0 eigentlich ein "0" ist ;-)
Gruß
Hubert
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: if 0==0 -> Fehlermeldung

Beitrag von Martin Altmann »

Hubert,
nein - wie Du im XPPERROR.LOG siehst, sind beide Numerisch.
Uli,
der Hintergrund ist mir schon klar - in der Zeile noch weiter vorne wird ein mit Dummywerten belegtes Browse abgefragt. Der Dummy wurde automatisch gesetzt, da das mit dem Browse verknüpfte Array leer war. Somit wird ein Phantomsatz im Browse erzeugt und angezeigt (XClass++-intern).
Nachdem ich im Falle eines leeren Arrays dieses vorher selber mit einem Phantomsatz gefüllt habe, läuft es auch ordentlich.

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.
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: if 0==0 -> Fehlermeldung

Beitrag von UliTs »

Martin,
aber es ist doch richtig,
dass die Fehlermeldung so unsinnig ist?

Uli
-------
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: if 0==0 -> Fehlermeldung

Beitrag von Jan »

Martin Altmann hat geschrieben:nein - wie Du im XPPERROR.LOG siehst, sind beide Numerisch.
Martin,

das ist so nicht ganz richtig. Ich habe solche Fehlermeldungen auch schon oft gesehen. Und da war dann einer der beiden Parameter nachweislich eben nicht numerisch. Das Log ist da manchmal irreführend.

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: if 0==0 -> Fehlermeldung

Beitrag von Martin Altmann »

Hmm - aber darauf muss man sich doch verlasen können!
Abgesehen davon wird vor dem Schreiben des logs der Fehler ja auch in einem Popup angezeigt - und da waren die Typen auch identisch.

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
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: if 0==0 -> Fehlermeldung

Beitrag von AUGE_OHR »

Martin Altmann hat geschrieben:nein - wie Du im XPPERROR.LOG siehst, sind beide Numerisch.
wie die anderen schon sagten das Log stimmt nicht !!!

Code: Alles auswählen

  cVar1 := "test"
  nVar2 := 12
  IF cVar1 < nVar2
     (...)
  ENDIF  
-> PDR 6401 ( open )
Martin Altmann hat geschrieben:Nachdem ich im Falle eines leeren Arrays dieses vorher selber mit einem Phantomsatz gefüllt habe, läuft es auch ordentlich.
hm ... ein "leeres" Array könnte auch mit NIL gefüllt sein ...
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: if 0==0 -> Fehlermeldung

Beitrag von brandelh »

Martin hat recht:
oError:args :
-> VALTYPE: N VALUE: 0
-> VALTYPE: N VALUE: 0
aber was da passiert ???
Gruß
Hubert
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: if 0==0 -> Fehlermeldung

Beitrag von UliTs »

AUGE_OHR hat geschrieben:hm ... ein "leeres" Array könnte auch mit NIL gefüllt sein ...
Dann ist es aber nicht mehr leer :D . Ein typischer Beweis durch "Widerspruch" 8) .
Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
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: if 0==0 -> Fehlermeldung

Beitrag von georg »

Hallo,


das Errorlog deutet auf die Zuweisung, während die Fehlerbeschreibung auf die Abfrage eine Zeile darüber deutet.

Kann es sein, dass die Quelle geändert, aber nicht erneut kompiliert/gebunden wurde?
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: if 0==0 -> Fehlermeldung

Beitrag von Martin Altmann »

Georg,
nein. Den Verdacht hatte ich als erstes. Aber auch nach einem recompile kam der Fehler wieder.

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
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: if 0==0 -> Fehlermeldung

Beitrag von Koverhage »

Ist das 64.bit ?
Würde eher auf eine Division durch 0 tippen, dann enthält nVal einen anderen bzw. undefinierten Datentyp.
Gruß
Klaus
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: if 0==0 -> Fehlermeldung

Beitrag von Martin Altmann »

Ja - 64 Bit
: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
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: if 0==0 -> Fehlermeldung

Beitrag von Koverhage »

Wenn val(str(ltrim(nVal,10,0))) funktioniert, ist eine Division durch 0 ursächlich für das Problem.
Gruß
Klaus
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: if 0==0 -> Fehlermeldung

Beitrag von AUGE_OHR »

brandelh hat geschrieben:Martin hat recht:
oError:args :
-> VALTYPE: N VALUE: 0
-> VALTYPE: N VALUE: 0
schon mal das Beispiel laufen lassen ?
ja es kommt N 0 = N 0 raus aber das Beispiel zeigt doch ganz klar das die Meldung FALSCH ist
brandelh hat geschrieben:aber was da passiert ???
activeX ? dort "versagt" die Typen Umwandlung gerne mal.
gruss by OHR
Jimmy
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: if 0==0 -> Fehlermeldung

Beitrag von Martin Altmann »

Jimmy,
gerade eben versucht - und da bekomme ich eine passende Fehlermeldung - das ist es also nicht:

Code: Alles auswählen

------------------------------------------------------------------------------
FEHLERPROTOKOLL von "c:\easydogw\EASYSHOW.EXE" Datum: 30.03.2013 11:54:12

Xbase++ Version     : Xbase++ (R) Version 1.90.355
Betriebssystem      : Windows 7 06.01 Build 07601 Service Pack 1
------------------------------------------------------------------------------
oError:args         :
          -> VALTYPE: C VALUE: test
          -> VALTYPE: N VALUE: 12
oError:canDefault   : N
oError:canRetry     : N
oError:canSubstitute: J
oError:cargo        : NIL
oError:description  : Parameter hat falschen Typ
oError:filename     :
oError:genCode      :          2
oError:operation    : <test> < <12>
oError:osCode       :          0
oError:severity     :          2
oError:subCode      :          3
oError:subSystem    : BASE
oError:thread       :          1
oError:tries        :          0
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Aufgerufen von PRAESENTIERE(3932)
Aufgerufen von (B)ERZEUGEMENU(416)
Aufgerufen von APPEXEC(281)
Aufgerufen von MAIN(984)
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.
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: if 0==0 -> Fehlermeldung

Beitrag von UliTs »

Ich vermute mal, das leere Array sieht wie folgt aus:

Code: Alles auswählen

aArray := {}
Wie sieht das Array mit Phantomsatz aus?

Uli
Zuletzt geändert von UliTs am Sa, 30. Mär 2013 13:17, insgesamt 1-mal geändert.
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
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: if 0==0 -> Fehlermeldung

Beitrag von Martin Altmann »

Gute Frage :thumbright:
Hatte ich mir auch gedacht und darum halt selber intialisiert - seitdem geht es auch.
War auch ein Problem bei XClass++ - mit jedem Durchlauf wurden entsprechend NIL angehangen an das erste automatisch initialisierte Element. Das erste Element war ein Array mit wieder drei Elementen. Beim nächsten Durchlauf waren dort vier Elemente im Hauptarray - einmal das erste mit drei Elementen und danach drei Mal NIL. Mit jedem weiteren Durchlauf wurden drei NILs mehr angehangen.
Das brachte mich dann auch auf die Idee, im Falle eines leeren Arrays dies selber zu initialisieren - seitdem geht es auch ordentlich.

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.
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: if 0==0 -> Fehlermeldung

Beitrag von UliTs »

Martin Altmann hat geschrieben:Gute Frage :thumbright:
Danke :)
Aber rein Interessehalber: wie sieht denn jetzt das Array mit Phantomsatz aus, welches Du zur Initialisierung verwendet hast :?:
Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
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: if 0==0 -> Fehlermeldung

Beitrag von Martin Altmann »

Nun, der Phantomsatz ist ja in dem Sinne keiner mehr - ich intialisiere das Array jetzt selber ordentlich:

Code: Alles auswählen

{ { 0, "", 0 } }
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.
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: if 0==0 -> Fehlermeldung

Beitrag von UliTs »

Ja, Du hast Recht. Daraus lassen sich wie erwartet keine Schlüsse ziehen. Und das der Browser auch mit einer leeren Tabelle bzw. Array zurecht kommen muss, ist auch klar.
Um auf Koverhage's Vermutung zurückzukommen: vielleicht wird bei Initialisierung des Scrollbars für den Browser durch 0 dividiert, wenn 0 Datensätze vorhanden sind...
Was für eine Bedeutung hat denn der Wert "nVal" ? Vielleicht der Index des ausgewählten Datensatzes?
Aber ist ja auch eigentlich egal, da Du einen simplen Work Around hast :-) .

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: if 0==0 -> Fehlermeldung

Beitrag von Koverhage »

Deswegen habe ich mir bei solchen Fehlermeldungen, oder auch
xfeld := nValue
Fehlermeldung: Länge des Datenbankfeldes wurde überschritten xFeld := 0
angewöhnt (wenn mir bekannt ist das es eine 64bit Maschine ist)
diesen Code auf einen XP 32bit Computer laufen zu lassen.
In allen Fällen war die Ursache eine Division durch 0.

Die Division erfolgt meisten etliche Zeilen vor dem bemängelten Code,
den der Fehler tritt ja erst dann auf wenn mit dem Ergebnis was gemacht wird.

Wenn man den Patch von Alaska nicht installiert hat (wie ich da keine aktive Subscription)
ist es manchmal aufwendig die Probleme zu lokalisieren, hat aber einen Vorteil:
Man kann diese Probleme selbst beheben (in dem Sinne was passieren soll)
und die Anwendung stabiler und sicherer machen.
Gruß
Klaus
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: if 0==0 -> Fehlermeldung

Beitrag von Werner_Bayern »

Division durch 0 bei 64 bit ==> Hotfix 35, Xpprt1.dll.
Wird die korrekte Version der DLL verwendet?
es grüßt

Werner

<when the music is over, turn off the lights!>
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: if 0==0 -> Fehlermeldung

Beitrag von Martin Altmann »

Yup - 1.90.355
: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.
Antworten