Fehler bei REPLACE im Netz !

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Fehler bei REPLACE im Netz !

Beitrag von xbaseklaus »

Hallo ... ich habe immer noch folgendes Problem bei einer

Netzwerkanwendung (2Benutzer = 2PC's im Netz)

wenn dass Programm auf einem Rechner beendet wird (Windows 7 64Bit)

kommt ab und zu (nicht immer, eher selten) folgende Fehlermeldung:

Code: Alles auswählen

ERROR LOG of "K:\project.EXE" Date: 16.04.2016 13:04:45

 Xbase++ version : Xbase++ (R) Version 1.90.355
 Operating system : Windows 7 06.01 Build 07601 Service Pack 1
 ------------------------------------------------------------------------------
 oError:args :
 -> VALTYPE: N VALUE: 1
 oError:canDefault : N
 oError:canRetry : N
 oError:canSubstitute: Y
 oError:cargo : NIL
 oError:description : Length of database field was exceeded
 oError:filename : 
 oError:genCode : 63,00
 oError:operation : <BENUTZER>:=<1>
 oError:osCode : 0,00
 oError:severity : 2,00
 oError:subCode : 8029,00
 oError:subSystem : BASE
 oError:thread : 1,00
 oError:tries : 0,00
 ------------------------------------------------------------------------------
 CALLSTACK:
 ------------------------------------------------------------------------------
 Called from MAIN(697)


obwohl HOTFIX 36 (DLL) für das 64Bit Problem installiert ist !

mal abgesehen davon, daß er hier in eine DBF nur ein REPLACE macht -> um die Anzahl der Benutzer beim beenden des Programs auf 1 zu setzen !!!

Code: Alles auswählen


* Programm wird auf dem PC beendet !
...
DbCommitAll()
   	
     use nutzer NEW     *( DBF mit Feld benutzer N 1 0 )
	netflock(5)						
           replace benutzer with 1
	unlock
      close databases

quit
Mfg Klaus
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: Fehler bei REPLACE im Netz !

Beitrag von xbaseklaus »

Guten Morgen , keiner ne Idee warum er bei einem REPLACE gerade diese Fehlermeldung bringt ! Es wird ja nicht mal irgendwas berechnet !

Und wie gesagt der Fehler taucht so alle 2 Wochen einmal auf ... sonst funktioniert der obige Code jeden Tag problemlos ...

vielleicht hat doch noch jemand ne Idee was ich zumindest mal als FIX ausprobieren könnte und beim Kunden hochladen ...

um darauf zu warten ob der Fehler beim Kunden irgendwann doch wieder auftaucht !

Habe das ganze jetzt schon mehrmals abgeändert !

Code: Alles auswählen

folgendes habe ich schon mal als FIX entfernt:

1. replace benutzer with benutzer - 1  ( Rechnung rausgeschmissen )

2. select 55                                        ( ersetzt durch:  use Nutzer NEW )
    use Nutzer

3. ...
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Fehler bei REPLACE im Netz !

Beitrag von Martin Altmann »

Moin Klaus,
mich wundert. dass die ganzen Zahlen bei den Fehlercodes mit zwei Nachkommastellen auftauchen - das deutet darauf hin, dass du mittels set decimals diese wahrscheinlich fix auf zwei gesetzt hast und somit nicht 1 sondern 1,00 in das Feld geschrieben werden soll. Latürnich scheitert dies, wenn Dein Feld keinerlei Nachkommastellen hat.

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.
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: Fehler bei REPLACE im Netz !

Beitrag von xbaseklaus »

Martin Altmann hat geschrieben:Moin Klaus,
mich wundert. dass die ganzen Zahlen bei den Fehlercodes mit zwei Nachkommastellen auftauchen - das deutet darauf hin, dass du mittels set decimals diese wahrscheinlich fix auf zwei gesetzt hast und somit nicht 1 sondern 1,00 in das Feld geschrieben werden soll. Latürnich scheitert dies, wenn Dein Feld keinerlei Nachkommastellen hat.

Viele Grüße,
Martin
das wäre ein Anhaltspunkt ... was mich aber dann wundert warum es meistens keinen Fehler gibt ....

... Hmm ich glaube ich wechsle im Programm ... set decimals to

Das könnte es aber sein ... ich werde mal vor dem REPLACE ein SET DECIMALS TO 0 setzen

Danke erstmal ... werde auch meinen CODE nochmal durchsuchen

Danke Martin
Benutzeravatar
komnick
UDF-Programmierer
UDF-Programmierer
Beiträge: 75
Registriert: Mi, 04. Jun 2014 9:56
Wohnort: Berlin
Hat sich bedankt: 1 Mal
Danksagung erhalten: 5 Mal

Re: Fehler bei REPLACE im Netz !

Beitrag von komnick »

Hallo Klaus,
ich meine, dass SET DECIMALS nur die Darstellung in Anzeige und Ausdruck definiert, aber nicht Speicherbedarf oder Rechengenauigkeit, und deshalb eher nicht die Ursache des Fehlers ist.
Vielleicht solltest du damit anfangen abzufragen, ob USE oder NETFLOCK() gescheitert sind.
Beste Grüße
Martin K.
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: Fehler bei REPLACE im Netz !

Beitrag von georg »

xbaseklaus hat geschrieben:netflock(5)
Was ist/macht netflock()? Wie ist "Benutzer" definiert?
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: Fehler bei REPLACE im Netz !

Beitrag von xbaseklaus »

georg hat geschrieben:
xbaseklaus hat geschrieben:netflock(5)
Was ist/macht netflock()? Wie ist "Benutzer" definiert?
Hallo Georg , netflock(5) überprüft ob die DBF Nutzer gesperrt ist , falls ja kommt nach 5 Versuchen eine Fehlermeldung !

DBF Nutzer mit FELD benutzer NUMERISCH N Feldlänge 1 Decimals 0 !

Die Datenbank kann aber nicht gesperrt sein , da sie nur einmal kurz beim Programstart überprüft bzw geändert wird und dann wieder geschlossen wird .

erst beim beenden des Programms wird sie erneut aufgerufen und kurz für ein REPLACE (mit Überprüfung netflock(5) ) gesperrt und danach sofort wieder freigegeben !
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: Fehler bei REPLACE im Netz !

Beitrag von georg »

Hallo, Klaus -


da Du das Ergebnis von netflock() nicht prüfst, kann es sein, dass der Datensatz nicht gesperrt wurde und das zu der Fehlermeldung führt.

Falls es irgendwie geht, würde ich vor dem REPLACE mal den aktuellen Inhalt des Feldes Benutzer ausgeben.

Aber das sind alles nur Vermutungen.
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: Fehler bei REPLACE im Netz !

Beitrag von Manfred »

wenn die Sperrung nicht klappt, müßte dann nicht eine andere Meldung als Fehler erscheinen beim Schreibversuch? Sowas wie Satz muß gesperrt sein, vor Replace? Meine ich jedenfalls.
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!!
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: Fehler bei REPLACE im Netz !

Beitrag von xbaseklaus »

Manfred hat geschrieben:wenn die Sperrung nicht klappt, müßte dann nicht eine andere Meldung als Fehler erscheinen beim Schreibversuch? Sowas wie Satz muß gesperrt sein, vor Replace? Meine ich jedenfalls.
ja netflock - würde dann eine Fehlermeldung auf dem Bildschirm anzeigen ! da kann aber keine kommen da die Nutzer DBF nur am Anfang bzw am Ende einmal kurz gesperrt wird und sonst geschlossen ist !
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: Fehler bei REPLACE im Netz !

Beitrag von AUGE_OHR »

was für ein "Netzwerk" Server ?

wie viel Zeit ist vergangen zwischen letzter Aktion und Logout ?
Energie Einstellungen ?

Virenscanner ?

>obwohl HOTFIX 36 (DLL) für das 64Bit Problem installiert ist !
der behelt lediglich das Division/0 Problem unter 64bit

unabhängig davon ist das rauf/runter Zählen "so" Quatsch ... was passiert wenn das Programm abstürzt ?
auch ist N 1 viel zu klein ... wenn er "schon" bei 9 steht knallt es bei 10 ... schon mal nachgesehen ?
gruss by OHR
Jimmy
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: Fehler bei REPLACE im Netz !

Beitrag von xbaseklaus »

@ Auge_Ohr

2 Pc Windows 7 1Pc Server und Arbeitsplatz 2Pc Kasse.

In Dbf Nutzer -> benutzer steht 0 , 1 , oder 2 nie mehr !

Hauptprogramm muss imer zuerst auf Server gestartet werden ... Kann auch nur 1mal gestartet werden ist im Code so festgelegt
Benutzer wird von 0 auf 1 gesetzt.

Danach kann auch nur auf 2. Pc die Kasse 1mal gestartet werden.
Benutzer wird von 1 auf 2 gesetzt.

Die Kasse muss auch immer zuerst beendet werden ist im Code so festgelegt.
Hier tritt auch ab und zu der Fehler auf Benutzer wird von 2 auf 1 gesetzt.

Danach kann auch erst das Hauptprogramm auf 1.Pc beendet werden
Da wird dann Benutzer von 1 auf 0 gesetzt

Beim start des Hauptprogramms wird jedesmal überprüft ob das programm schon gestartet wurde. Dementsprechend wird der Benutzer überprüft bzw angepasst .
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: Fehler bei REPLACE im Netz !

Beitrag von xbaseklaus »

Ach ja auf beiden Pcs ist der Alaska smb2 fix installiert und die Arbeitsverzeichnisse sind in beiden Virenscannern ausgeschlossen
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: Fehler bei REPLACE im Netz !

Beitrag von xbaseklaus »

Eigentlich brauche ich die Dbf Nutzer->benutzer gar nicht mehr , weil ich um zu überprüfen ob das programm gestartet wurde bzw wann welches programm wie oft gestartet wurde jeweils auf jedem Pc eine Dummy Dbf exclusive öffne die ich immer Abfrage um zu verhindern dass das programm mehrmals gestartet wird bzw um die richtige Startreihenfolge zu überprüfen.

Aber deswegen würde mich trotzdem interresieren warum der Fehler ab und zu auftaucht.
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: Fehler bei REPLACE im Netz !

Beitrag von AUGE_OHR »

xbaseklaus hat geschrieben:Ach ja auf beiden Pcs ist der Alaska smb2 fix installiert und die Arbeitsverzeichnisse sind in beiden Virenscannern ausgeschlossen
der SMB2 Patch nützt dir gar nichts wenn du über den Lanmanager gesteht und ein Laufwerk "map"pst.

was ist mit den Energie Spar Massnahmen Netzwerkkarte ?
gruss by OHR
Jimmy
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: Fehler bei REPLACE im Netz !

Beitrag von xbaseklaus »

="AUGE_OHR
was ist mit den Energie Spar Massnahmen Netzwerkkarte ?
Die sollten auf beiden PCs abgeschaltet sein ... werde ich aber nochmal überprüfen !
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: Fehler bei REPLACE im Netz !

Beitrag von brandelh »

AUGE_OHR hat geschrieben:
xbaseklaus hat geschrieben:Ach ja auf beiden Pcs ist der Alaska smb2 fix installiert und die Arbeitsverzeichnisse sind in beiden Virenscannern ausgeschlossen
der SMB2 Patch nützt dir gar nichts wenn du über den Lanmanager gesteht und ein Laufwerk "map"pst.
was ist mit den Energie Spar Massnahmen Netzwerkkarte ?
soweit ich mich erinnere schaltet der Patch die Pufferung der MetaDaten von gesharten Datein ab, das ist in jedem Fall wichtig.
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: Fehler bei REPLACE im Netz !

Beitrag von AUGE_OHR »

brandelh hat geschrieben:soweit ich mich erinnere schaltet der Patch die Pufferung der MetaDaten von gesharten Datein ab, das ist in jedem Fall wichtig.
JA ... wenn es im SMB2 Betrieb läuft !
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: Fehler bei REPLACE im Netz !

Beitrag von Herbert »

xbaseklaus hat geschrieben:um die Anzahl der Benutzer beim beenden des Programs auf 1 zu setzen !!!
Abgesehen vom Problem (jimmy dürfte Recht haben, obwohl der Ort mit dem Fehler sehr eigenartig ist), die Frage, warum du die Anzahl der Benutzer auf diese Weise versuchst festzuhalten? Setzt beim Beenden auf 1? Nicht auf 0? Wenn ein User einen Absturz hat, wird nicht zurückgesetzt, also stimmt so was doch nie. Ich sehe nicht, was deine NUtzer.dbf genau macht. Pro User einen Eintrag? Falls ja, wäre ein logisches Feld ob Login oder nicht einfacher (ja, das ändert im Absturzfall auch nicht, aber dann nur bei dem User) und man muss nur alle login=.t. zusammenzählen und irgendwann mal alle auf .f. stellen.
Worauf ich hinaus will, lass diese Operation einfach mal weg.
Grüsse Herbert
Immer in Bewegung...
Antworten