Ungültiger numerischer Wert für Operation

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

DelUser01

Re: Ungültiger numerischer Wert für Operation

Beitrag von DelUser01 »

OK - aber was ist mit

a := field->skontoabz/(field->skontober/100)
b := Str( a , 10 , 1 )
? b
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Ungültiger numerischer Wert für Operation

Beitrag von ramses »

Hallo Roland


a := field->skontoabz/(field->skontober/100)
b := Str( a , 10 , 1 ) ---->>> BUMM

Gruss Carlo
Valar Morghulis

Gruss Carlo
DelUser01

Re: Ungültiger numerischer Wert für Operation

Beitrag von DelUser01 »

ramses hat geschrieben: Do, 17. Aug 2017 12:18b := Str( a , 10 , 1 ) ---->>> BUMM
OK -dann ist die Ausgabe mit ?/?? schon mal raus aus der Fehlersuche, auch Deine Berechnung.

Versuche
a := field->skontoabz/(field->skontober/100)
a :=Round( a , 10 , 1 )
b := Str( a , 10 , 1 )
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: Ungültiger numerischer Wert für Operation

Beitrag von Koverhage »

OK -dann ist die Ausgabe mit ?/?? schon mal raus aus der Fehlersuche, auch Deine Berechnung
Warum ?
Die Frage ist doch was bei (field->skontober/100) rauskommt.Den Wert sollte man prüfen
Gruß
Klaus
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Ungültiger numerischer Wert für Operation

Beitrag von ramses »

Da kommt etwas zwischen 0 und 500 raus. Oder höher.
Valar Morghulis

Gruss Carlo
DelUser01

Re: Ungültiger numerischer Wert für Operation

Beitrag von DelUser01 »

Ich gehe davon aus, dass Carlo vorrangig einen Workarround für sein Problem benötigt.
Warum das mit Str() passiert ist nachrangig.

Ich hatte in der Vergangenheit auch schon Probleme mit Rechenergebnissen und der Umwandlung mit Str().
Meist war das so, dass eigentlich 0 herauskommen müsste, dann aber 0.000000000000000000irgendwas angezeigt wurde (die Nullen habe ich jetzt nicht abgezählt :-) )
Ob das inzwischen anders ist weiß ich nicht, meine Workarrounds sind an den entsprechenden Stellen immer noch drin.
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Ungültiger numerischer Wert für Operation

Beitrag von ramses »

Hallo Roland

ein Workaround für EINE Problemstelle wäre:

a := field->skontoabz/(field->skontober/100)
repla field->tmpzahl with a
? str(field->tmpzahl, 10,1 )

Gruss Carlo
Valar Morghulis

Gruss Carlo
DelUser01

Re: Ungültiger numerischer Wert für Operation

Beitrag von DelUser01 »

ramses hat geschrieben: Do, 17. Aug 2017 14:32a := field->skontoabz/(field->skontober/100)
repla field->tmpzahl with a
? str(field->tmpzahl, 10,1 )
Und funktioniert das?
Dann wäre das ja OK
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: Ungültiger numerischer Wert für Operation

Beitrag von BJelinek »

Warum berechnet Ihr a so:
a := field->skontoabz/(field->skontober/100)
und nicht so:
a:= field->skontoabz*100/field->skontober

Es heißt doch immer erst Multiplizieren dann Dividieren.
Grüße
Bernd

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: Ungültiger numerischer Wert für Operation

Beitrag von AUGE_OHR »

ramses hat geschrieben: Di, 08. Aug 2017 13:36Der Zugriff auf die Datenbank erfolgt über ADSDBE.
arbeitet die ADS v10.x mit "der" ADSDBE ... oder mit der ADS 11.x ?
gruss by OHR
Jimmy
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Ungültiger numerischer Wert für Operation

Beitrag von ramses »

@Roland

Ja. Das funktioniert. Frag nicht, ich kann es nicht erklähren. OK? Nein. überhaupt nicht. Dazu finde ich keine Worte.


@Bernd

Eine gute Frage. Darauf weiss ich keine Antwort. Die Zeilen stammen noch aus Clipper Zeiten. Sie wurden nur mehrfach überarbeitet aber ohne grosse Umstellungen. Der ursprüngliche Schreiber dieses Codes, einer meiner besten Freunde, kann ich nicht mehr befragen, er ist vor langer Zeit verstorben ......

@Jimmy

Der Ads Server und die DLL auf den PC's haben die selbe Version 10.10.0.49


Gruss Carlo
Valar Morghulis

Gruss Carlo
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Ungültiger numerischer Wert für Operation [ERLEDIGT]

Beitrag von ramses »

Hallo

Probleme definitiv behoben. Es lag (mal wieder) am Header.

Gruss Carlo
Valar Morghulis

Gruss Carlo
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Ungültiger numerischer Wert für Operation [ERLEDIGT]

Beitrag von ramses »

Hallo

die Ursache der Problem scheinen "zerstörte" DateiHeader der DBF-Dateien zu sein.

Irgendeine Xbase DBF Funktion schreibt Mist in die Dateiheader der DBF-Dateien.
x1.jpg
x1.jpg (427.08 KiB) 9831 mal betrachtet

Welche Bedingungen erfüllt sein müssen damit Xbase "durchdreht" habe ich nicht herausgefunden.
Nach der Bereinigung aller Dateiheader ist auch das Problem beseitigt bezw. ist seitdem nicht mehr aufgetreten.

Scheinbar ist dies ein älteres Problem, vor einigen Jahren haben überschriebene/zerstörte Dateiheader schon mal zu anderen Problemen geführt.


Gruss Carlo
Valar Morghulis

Gruss Carlo
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: Ungültiger numerischer Wert für Operation [ERLEDIGT]

Beitrag von Jan »

Hallo Carlo,

muß es denn unbedingt ein Xbase++-Problem sein? Wenn das all die Jahre gut gelaufen ist, und jetzt plötzlich auftritt, und auch nur bei einem Kunden - kann es sein, das dort ein neugieriger Mitarbeiter sich mal die Dateien ansehen wollte, und dafür ein ungeeignetes Programm benutzt hat? Hab ich leider auch schon erleben müssen. Nicht nur die klassische vollkorrumpierende Variante, die dbf mit Excel bearbeiten zu wollen. Sondern auch diffiziler.

Und auch, das es ein fremdes Programm gab das meinte, bestimmte Dateien würden ihm gehören, und dann meine einfach gnadenlos mit seinen ANSI-Files überschrieben hat. In dem Fall konnte ich zum Glück schnell raus bekommen, wer das war (sein Programmname stand in den ANSI-Dateien drin), und er war zutiefst kooperativ bei der Lösung des Problems. Dennoch hatte ich natürlich einen Haufen Ärger. Unsere beiden Programme waren auf einer Demo-CD drauf, und alle, die sich die installiert haben, hatten natürlich noch nicht das Update. und damit war mein Programm Sch...., weil es mit seinen eigenen Dateien nicht klar kam und Fehlermeldungen ausgespuckt hat. Und dann zu sagen, das war ein anderes, kommt bei vielen Kunden auch nicht gut an. Die verstehen das oft als billige Schuldabweisung zu Lasten Anderer.

Wobei das in Deinem Fall eher nach Fragmenten einer Fehlermeldung aussieht?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Ungültiger numerischer Wert für Operation [ERLEDIGT]

Beitrag von ramses »

Hallo Jan

ja ich denke es ist ein Xbase Problem. Ich habe auf meinem Entwicklungsrechner auch viele Dateien deren Dateiheader nach einiger Zeit auf einmal nicht mehr korrekt sind. Das Beispiel ist das einzlge das irgenwie auch lesbar ist. Vorallem zeigem die Zeichen eine Verbindung zu xbase. Ich kann mir nicht vorstellen dass ein Excel oder anderes Programm solche Texte schreiben würden, vorallem aber sind ja NUR die Stellen überschieben die 0 sein müssten ...... die Stukurdaten sind ja alle korrekt vorhanden.

Vor Jahren hatt ich schon mal solche Probleme, damals habe ich dem Programm Header-Check eingebaut welches solche Probleme bezw. den Dateiheader prüft und korrigiert. Dies leider zuwenig oft.


Gruss Carlo
Valar Morghulis

Gruss Carlo
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Ungültiger numerischer Wert für Operation [ERLEDIGT]

Beitrag von ramses »

Hallo Jan

ich habe noch ein anders Beispiel gefunden:
x2.jpg
x2.jpg (503.54 KiB) 9832 mal betrachtet
In dieser Datei stehen Feldnamen einer anderen DBF Datei die jeweils zur selben Zeit geöffnet ist.
Viele dieser "falschen" Texte führen nicht zu Problemen. Welche zu Fehlern führen oder wieviele DBF's gleichzeitig geöffnet sein müssen weiss ich nicht.


Gruss Carlo
Valar Morghulis

Gruss Carlo
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: Ungültiger numerischer Wert für Operation [ERLEDIGT]

Beitrag von Jan »

Carlo,

was machst Du da?!? Nein, ehrlich. Das ist ja schon heftig. Ja, es sieht ganz klar nach Xbase++ aus. Aber wenn Xbase++ sowas regelmäßig/standardmäßig machen würde, dann würde ein Sturm über Alaska hinwegfegen, der die alle umhauen würde. Von daher tippe ich auf irgend etwas anderes. Hardwarefehler auf dem Server? Serversoftware irgendwie irre? Ich kann mir beim besten Willen nicht vorstellen, das Du da mit Deiner Software selber irgendwie wild in der Gegend rum schreibst. Vor Allem - wie will man das denn machen mit den Standard-DB-Funktionen? Von daher tippe ich wirklich auf Probleme mit dem Rechner.

Arbeitest Du da mit Standard-dbf und Standard-Einstellungen in der dbesys? Aber selbst wenn nicht - wie kann man Daten in eine fremde dbf schreiben? Eine dbf zerschießen, ja, wenn man da Blödsinn in der dbesys verzapft. Aber doch nicht über dbf-Grenzen hinweg.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Ungültiger numerischer Wert für Operation [ERLEDIGT]

Beitrag von ramses »

Hallo Jan

das passiert nur mit der "dbfntx" die hat dann auch keine Probleme mit diesen Dateien.
Mit der "adsdbe" kommt es dann mit den Dateien zu den Problemen.

Dateien die nur mit der "adsdbe" bearbeitet werden sind alle Header ok.

Hardwarefehler? Es betrifft ja mehrere Netzwerke und Serverbetriebsystem die Gemeinsamkeit ist die Hardware.

Gruss Carlo
Zuletzt geändert von ramses am Fr, 01. Sep 2017 15:33, insgesamt 1-mal geändert.
Valar Morghulis

Gruss Carlo
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: Ungültiger numerischer Wert für Operation [ERLEDIGT]

Beitrag von Jan »

Hallo Carlo,

sorry, bin vielleicht gerade etwas übermüdet. Aber ich kann Dir nicht so ganz folgen. Du arbeitest mal mit dbfntx, manchmal mit adsdbe. Und manchmal gemischt? Und Probleme gibt es nur im Mischbetrieb?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Ungültiger numerischer Wert für Operation [ERLEDIGT]

Beitrag von ramses »

Hallo Jan

Nein ich arbeite nicht gemischt. Das geht nicht. Für bestimmte Aufgaben kommt ein Programm zu Einsatz welches die DBFNTX verwendet. In dieser Zeit ist der ADS-Server(Modul) ENTLADEN. Damit kein User auf irgendetwas zugreifen kann und zwangsmässig getrennt wird.

Gruss Carlo
Valar Morghulis

Gruss Carlo
DelUser01

Re: Ungültiger numerischer Wert für Operation [ERLEDIGT]

Beitrag von DelUser01 »

ramses hat geschrieben: Fr, 01. Sep 2017 14:11Irgendeine Xbase DBF Funktion schreibt Mist in die Dateiheader der DBF-Dateien
Wenn das so ist und es sich reproduzieren lässt müsstest Du doch die "schuldige"Funktion herausfinden können.

Ich kann mich an eine länger zurückliegende Zeit erinnern, da waren bei einem Kunden immer wieder die DBFs und/oder die NTX beschädigt. Die Ursachen konnten eingegrenzt werden: Stromausfall, Server-/PC-Absturz, User schaltet PC hart aus oder schießt die EXE ab.
Auf jeden Fall wurde dann ADS eingesetzt und die Strukturen blieben sauber.

Wenn der von Dir beschriebene Fehler in einer Xbase++-Funktion stecken würde käme das bei mehreren vor. Mal sehen, vielleicht meldet sich noch jemand der das Problem auch kennt...
DelUser01

Re: Ungültiger numerischer Wert für Operation [ERLEDIGT]

Beitrag von DelUser01 »

ramses hat geschrieben: Fr, 01. Sep 2017 15:38Für bestimmte Aufgaben kommt ein Programm zu Einsatz welches die DBFNTX verwendet. In dieser Zeit ist der ADS-Server(Modul) ENTLADEN. Damit kein User auf irgendetwas zugreifen kann und zwangsmässig getrennt wird.
Ufffff... doch irgendwie Mischbetrieb! Sonst müstest Du ADS nicht entladen.

Wie Jan schon geschrieben hat würde auch ich hier die Ursache für die Probleme vermuten.
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Ungültiger numerischer Wert für Operation [ERLEDIGT]

Beitrag von ramses »

Hallo Roland

ja, im wechselnden Betrieb liegt wohl das Problem. Die DBFNTX verschreibt der Header hat selbst aber keine Probleme damit. Wird diese unter ADS verwendet kann es zu Problemen kommen. Bei der weiteren Suche habe ich auf meinem Rechner auch viele DBF gefunden die immer mit der DBFNTX bearbeitet wurden und deren Header nicht korrekt ist. Es gab aber unter der DBFNTX nie Probleme damit.

Ich muss wohl versuchen eine andere Organisation des Ablaufs zu finden damit alle Arbeiten via ADS ausgeführt werden damit wären die Probleme wohl beseitigt. Da die DBFNTX nicht mehr mit den DBF in berührung kommt.
Das Problem dabei sind die User die nach Hause gehen und sich zeitweise nicht abmelden die stehen dann noch auf den Daten, hier kam die Idee durch entladen des ADS die Dateien zu befreien um die Arbeiten auszuführen.

Gruss Carlo
Valar Morghulis

Gruss Carlo
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Ungültiger numerischer Wert für Operation [ERLEDIGT]

Beitrag von brandelh »

In zusammenarbeit von Clipper und Xbase++ habe ich sowas nie erlebt.

Aber EDLIN ... oder Excel, bei dem die Überschriften "schöner" geschrieben wurden in Ansi natürlich ....

Aber ich musste mir auch anhören wie ein "EDV Experte" sich beklagt hat, dass er mit dem HEX Editor die Datenfeldlänge ändern musste ... er war dann ganz irritiert, warum er nicht uns gefragt hat. Und dass DBFs ihre eigene Struktur kennen, davon hatte er auch noch nichts gehört :angry4: :angry5:
Gruß
Hubert
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: Ungültiger numerischer Wert für Operation [ERLEDIGT]

Beitrag von AUGE_OHR »

hi,

so ein Problem, mit falschem DBF Header, habe ich lange nicht mehr gesehen.
wenn war es oft ein "Bad Cluster", also die HDD Hardware, wodurch die DBF durcheinander geriet

Frage : hast du eine geänderte DBESYS ?

bei DBFNTX habe ich bislang (v1.9x) solche Probleme noch nie gesehen ...
ramses hat geschrieben: Fr, 01. Sep 2017 22:56Das Problem dabei sind die User die nach Hause gehen und sich zeitweise nicht abmelden die stehen dann noch auf den Daten, hier kam die Idee durch entladen des ADS die Dateien zu befreien um die Arbeiten auszuführen.
dann baue doch ein Timeout in deine App ein.

Code: Alles auswählen

   lExit := .F.
   DO WHILE .NOT. lExit
      // 4th Parameter -> timeout -> xbe_None
      nEvent := AppEvent( @mp1, @mp2, @oXbp, nTimeOut )
      DO CASE
         CASE nEvent = xbe_None  // timeout Event
            lExit := .T.         // raus
gruss by OHR
Jimmy
Antworten