AllTrim() als unbekannte Funktion???

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:

AllTrim() als unbekannte Funktion???

Beitrag von Jan »

Hallo,

gerade bekomme ich dieses Errorlog rein:
Xbase++ Version : Xbase++ (R) Version 2.00.656
Betriebssystem :Windows XP 05.01 Build 02600 Service Pack 3
------------------------------------------------------------------------------
oError:args :
-> VALTYPE: C VALUE:Johann Adam
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, die Runtime von Xbase++ kennt die Funktion AllTrim() nicht? Es geht hier ja nicht um so banale und nachvollziehbare Sachen wie, das der übergebene Parameter falsch sei, ich also z. B. ein AllTrim() auf einen numerischen Wert fahren will.

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: AllTim() als unbekannte Funktion???

Beitrag von Martin Altmann »

Moin,
erst dachte ich: Klar hast ja auch ein R vergessen (lies mal noch mal Deinen Betreff) ;-)
Wahrscheinlich hast Du die Klammern hinter dem Funktionsnamen falsch? Also ein Leerzeichen davor?
Poste doch mal die Zeile, in der der Fehler auftrat!

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: AllTim() als unbekannte Funktion???

Beitrag von AUGE_OHR »

Martin Altmann hat geschrieben:Moin,
erst dachte ich: Klar hast ja auch ein R vergessen (lies mal noch mal Deinen Betreff) ;-)
dachte ich auch aber im Errorsys steht ja ALLTRIM.
Wahrscheinlich hast Du die Klammern hinter dem Funktionsnamen falsch? Also ein Leerzeichen davor?
das

Code: Alles auswählen

cname := ALLTRIM   (cName)
sollte nichts ausmachen.

ich denke nicht das Jan den Fehler reproduzieren kann ;) deshalb nur der Rat : neu booten ...
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: AllTrim() als unbekannte Funktion???

Beitrag von Jan »

Moin,

das ist in dem DataLink eines SLE. Das ständig und dauernd verwendet wird. Da sind also keine Tipp- oder Logikfehler drin. Man kann ja an dem Errorlog auch sehen, das da ein korrekte Parameter übergeben wurde. Und der auch korrekt erkannt wurde. Nur die Funktion will die Runtime nicht erkennen wollen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige 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: AllTrim() als unbekannte Funktion???

Beitrag von Manfred »

geh doch mal im Debugger bis dort hin und rufe dann die Funktion auf der Console auf und schaue mal, wie die VX reagiert.
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
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: AllTrim() als unbekannte Funktion???

Beitrag von brandelh »

ich hatte schon den Fall, dass ich eine Funktion ausschließlich in einem Textcodeblock verwendet habe.
Dann muss wohl der linker die Funktion nicht erkannt (es ist ja noch kein echter codeblock beim compilieren) und auch nicht referenziert haben.

Zur Ausführungszeit kam dann dieser Fehler.
In solchen Fällen hab ich irgendwo in einem Bereich der nicht ausgefürht wird die Funktion aufgerufen und alles war gut.

Aber Alltrim() ... ist ja so selten nicht ?

Ich meine Clipper hat das intern zu trim(rtrim(cTxt)) umgesetzt, aber der Xbase++ PPO Code zeigt alltrim() als richtige Funktion.
Gruß
Hubert
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: AllTrim() als unbekannte Funktion???

Beitrag von Manfred »

mir fällt gerade noch ein, wenn die Funktion wirklich unbekannt wäre, dann müßte doch schon der Compiler meckern. Also wie Martin schon sagte (und denke daran, 4 Augen sehen mehr als 2) zeige mal die Codestelle. Den Tipp gibst Du ja auch immer gerne hier ;-)
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
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: AllTrim() als unbekannte Funktion???

Beitrag von Rolf Ramacher »

Hi Jan

kann es sein, das an irgendeiner Stelle der Valtype C mit NIL eingetragen oder geändert wird?
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
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: AllTrim() als unbekannte Funktion???

Beitrag von Tom »

Es kann kein Link-Fehler sein; "AllTrim()" steckt in der XPPRT1.DLL, die immer gewrappt wird. Das hier funktioniert, obwohl es darin keinen direkten Aufruf von "AllTrim()" gibt:

Code: Alles auswählen

FUNCTION Main()
LOCAL b := &("{||AllTrim(c)}")
c := 'Test'
? Eval(b)
RETURN NIL
Ich nehme an, dass es entweder tatsächlich einen Typo gibt - oder dass das Fehler-Logging nicht ganz eindeutig ist. Was passiert, wenn Du den Aufruf von AllTrim() in eine Funktion auslagerst?

Code: Alles auswählen

... DATALINK {|c|c:=Irgendwas(c)}

FUNCTION Irgendwas(c)
RETURN AllTrim(c)
Herzlich,
Tom
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: AllTrim() als unbekannte Funktion???

Beitrag von Herbert »

Ganz banal und blöd aber doch möglich, dass auf der Codezeile ein nicht sichtbares Zeichen steckt, welches stört. Vielleicht ist dir eine Maus über die Tastatur gehuscht.
Lösch die betreffende Linie weg und schreibe sie wieder gleich hinein...
Grüsse Herbert
Immer in Bewegung...
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: AllTrim() als unbekannte Funktion???

Beitrag von Jan »

Ähm ... danke, das Ihr Euch das so reinkniet. Aber der Fehler ist bislang ist der Fehler genau 1x aufgetreten bei vielen Kunden, und ganz vielen SLE in dem Projekt. Das ist also kein Fehler beim Kompilieren/Typo/unsichtbares Zeichen (ja, mit sowas hab ich auch schon bis kurz vorm Wahnsinn gekämpft). Das ist ein eindeutiger Laufzeitfehler.

Hintergrundinfo: Ich habe mir eine eigene Funktion um ein XbpSle herum gebaut (Otto Normalprogrammierer hätte das wohl mit einer Klasse gemacht ;-) ). Damit Dinge, die in dem Projekt immer gleich gehandhabt werden sollen, an einer Stelle definiert sind. Und ich die auch nur an einer Stelle ändern muß, wenn es da Bedarf für gibt. Und der Code insgesamt übersichtlicher wird, weil ich eben nicht bei der Erzeugung jedes SLE dutzende Codezeilen schreiben muß, die ohnehin immer überall gleich lauten würden. Und in dieser Funktion hat es eben beim DataLink in dieser allgemeinen Funktion aufgetreten.

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: AllTrim() als unbekannte Funktion???

Beitrag von Tom »

Manchmal ist das Laufzeitfehlersystem nicht zu hundert Prozent verlässlich, was die Angabe der Fehlerursache/-zeile anbetrifft.
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: AllTrim() als unbekannte Funktion???

Beitrag von Jan »

Hallo Tom,

ja, die Problematik kenne ich leider nur zu gut. Hier sollte das aber passen, da zwei Dutzend Zeilen hoch und runter kein anderes AllTrim() vorkommt. Und eben in genau der monierten Zeile eines steht. Zu dem auch der übergebene Parameter passt.

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: AllTrim() als unbekannte Funktion???

Beitrag von Tom »

Hallo, Jan.

Zur Laufzeit erzeugte Codeblöcke, komplexe Indexausdrücke, Indexkorruptionen, sich synchronisierende/aufeinander wartende Threads - es gibt eine gehörige Anzahl mir bekannter Situationen, die zu uneindeutigen Laufzeitfehlern führen können, nicht aber müssen (dazu kommt dann noch alles, was auf Betriebssystemebene und in parallel aktiven Programmen passiert). Oft stimmt dann auch der Callstack nicht ganz, und die darin genannte Programmstelle war zum Fehlerzeitpunkt möglicherweise tatsächlich aktiv, aber nicht diejenige, in der der Fehler auftrat. Passiert selten, glücklicherweise, aber manchmal sitzt man tatsächlich vor einer Fehlerbeschreibung, die definitiv nicht auf die Ursache verweist. Eine Errorsys, die möglichst umfassende Informationen liefert, kann da hilfreich sein, aber auch das ist nicht ganz ungefährlich, weil eine komplexe Fehlerbehandlung möglicherweise Abhängigkeiten enthält, die selbst involviert sein können.
Herzlich,
Tom
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: AllTim() als unbekannte Funktion???

Beitrag von UliTs »

Martin Altmann hat geschrieben:...
Poste doch mal die Zeile, in der der Fehler auftrat!
...
Wie kannst Du so etwas nur von Jan verlangen, wo er sich doch sicher ist, dass dies für uns völlig uninteressant ist. :D :D :D
Sonst wären wir ja viel zu kurz mit dem Problem beschäftigt 8)
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: AllTim() als unbekannte Funktion???

Beitrag von Herbert »

UliTs hat geschrieben:
Martin Altmann hat geschrieben:...
Poste doch mal die Zeile, in der der Fehler auftrat!
...
Wie kannst Du so etwas nur von Jan verlangen, wo er sich doch sicher ist, dass dies für uns völlig uninteressant ist. :D :D :D
Sonst wären wir ja viel zu kurz mit dem Problem beschäftigt 8)
Na ja, mit XP als Betriebssystem...
:wink:
Im Ernst:
- hast überall die passenden Bibliotheken, also keine aus 1.9-er Zeiten noch im Zugriff?
- Bleibt wohl nur ein Umschreiben, um zum gleichen Ergebnis zu gelangen.
Grüsse Herbert
Immer in Bewegung...
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: AllTim() als unbekannte Funktion???

Beitrag von AUGE_OHR »

Herbert hat geschrieben:Na ja, mit XP als Betriebssystem...
warum sollte die v2.x auf XP solche Probleme machen ?
Herbert hat geschrieben:- hast überall die passenden Bibliotheken, also keine aus 1.9-er Zeiten noch im Zugriff?
man sollte davon ausgehen das Jan es mit XppLoad.EXE kontrolliert hat.

ich hatte ja die Frage gestellt ob sich der Fehler reproduzieren lässt :?:
ein Fehler ist es nur dann für mich wenn er reproduzierbar ist :!:
gruss by OHR
Jimmy
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: AllTim() als unbekannte Funktion???

Beitrag von Herbert »

AUGE_OHR hat geschrieben:
Herbert hat geschrieben:Na ja, mit XP als Betriebssystem...
warum sollte die v2.x auf XP solche Probleme machen ?
Probleme wohl eher nicht, da Xbase ja auf diesen Umgebungen entstanden ist. Aber kein Kunde wird heute noch xp einsetzen und daher sollte die eigene Entwicklungsumgebung doch auch etwas moderner sein.
Fehler sind immer in Summe Applikation/andere Applikationen/Betriebssystem/Netzwerk/Server usw anzusehen. Falls ein Teil davon eher alt ist (wie eben das XP) ist eine Analyse nicht immer von Vorteil. Microsoft unterstützt da ja nichts mehr.
Grüsse Herbert
Immer in Bewegung...
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: AllTrim() als unbekannte Funktion???

Beitrag von Koverhage »

Herbert,
Aber kein Kunde wird heute noch xp einsetzen
Das mag für die Schweiz (ach nee war ja jetzt Österreich) gelten, was ich bezweifle,
aber nicht in Deutschland. Es gibt noch genügend XP Rechner auf denen Xbase++
Anwendungen laufen.
Nicht zu vergessen, dass die Geldautomaten der Banken soweit mir bekannt, größtenteils auch
XP als BS haben.
Gruß
Klaus
Antworten