oError:genCode : 8999

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

Moderator: Moderatoren

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: oError:genCode : 8999

Beitrag von Tom »

Nein, das geht:

Code: Alles auswählen

test->name = 'Test' 
? test->name // 'Test'
Sollte man nicht machen, funktioniert aber.
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: oError:genCode : 8999

Beitrag von brandelh »

= und := sind bei der Zuweisung identisch, allerdings ist := eindeutig eine Zuweisung und = kann auch ein Vergleich sein, ein kleiner Syntaxfehler und man wundert sich ;-)
PS: ich nutze normalerweise immer REPLACE und nur in codeblocks dann := aber einen Kommentar // replace.
So kann ich leicht suchen wo überall Felder überschrieben werden ... 8)
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: oError:genCode : 8999

Beitrag von Tom »

FieldPut() nicht zu vergessen. Das benutze ich häufig in Codeblöcken. :wink: ":=" wird bei mir (fast) nur verwendet, wenn es um Variablenzuweisung geht.
Herzlich,
Tom
Benutzeravatar
Scarmo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 188
Registriert: Di, 24. Jul 2007 9:17

Re: oError:genCode : 8999

Beitrag von Scarmo »

Und schon wieder etwas gelernt! =D>

Marco
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: oError:genCode : 8999

Beitrag von Jan »

Ich benutze fast ausschließlich ":=", egal ob Variablenzuweisung oder Feld füllen. REPLACE ... WITH ... macht mir persönlich den Code durch den langen Text zu unübersichtlich, lenkt von den Feld- oder Variablennamen ab. Ist natürlich meine ganz persönliche Meinung. FieldPut() benutze ich eher selten, z. B. wenn ich Inhalte aus einer Datenbank in eine andere Übertragen will, ohne die Feldnamen vorher zu kennen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: oError:genCode : 8999

Beitrag von AUGE_OHR »

brandelh hat geschrieben:Meine Frage war retorisch
mein Antwort auch ;)
brandelh hat geschrieben:aber deine dauernde Erwähnung, dass alles mit SMB2 / Win7/8 im NETZWERK zusammenhängt, erweckt bei Neueinsteigern den Eindruck,
scheinbar habe ich es nicht verständlich genug dargestellt wenn bei dir oder Jan der Eindruck entsteht.

selbstverständlich weise ich beim aktuellen OS(), also Win7 / 8.x auf SMB2 hin ... SMB1 ist ja auch noch vorhanden und neuerdings auch SMB3 (v2.3).
und NEIN ich will das ganze Thema nicht noch mal tippen, dazu kann man sich ja die vorhandenen Threads ansehen.

die Sache mit dem 8999 ist doch das er nicht immer und nicht in jeder Konfiguration auftritt.
mit XP SP3 / Srv2003 hatte man das SMB1 Problem mit 8999 "im Griff" und dann kam mit Win 7 ( Vista hatte kaum jemand ) und SMB2 erneut 8999 :(

warum läuft der Dual-fähige Source mit Cl*pper und den selben Bedingungen ?
wäre es im Netzwerk noch verständlich aber wieso gibt es auch Lokal diese 8999 ?

wenn du eine besser verständliche Erklärung für die "möglichen" Auswirkungen auf eine Cl*pper vs. Xbase++ Applikation hast ... her damit.
brandelh hat geschrieben:dass ein LOCK erst beim zweiten Benutzer im Netzwerk nötig wird.
ich habe von einem expliziten DbRlock(nRec) gesprochen und dargestellt das Xbase++ DbAppEnd() / NetErr() / Rlock() nicht verlässlich ist !

brandelh hat geschrieben:Ich will nur darauf hinweisen, dass jede Datei die NICHT exclusive geöffnet wird, bei jedem Schreibzugriff immer gesperrt werden muss, entweder mit RLock()/FLock() oder automatisch bei dbAppend() / APPEND BLANK oder geänderter Locking Einstellung der DBE. Auch auf einem Rechner ohne Netzwerkkarte.
so langsam kommst du wieder zum Punkt : automatisch -> "eigentlich" kein zusätzliches DbRlock(nRec) notwendig !

Jimmy sagt : unter Xbase++ sollte man nach dem NetErr() noch "explizit" ein DbRLock(nRec) ausführen.

Code: Alles auswählen

      TESTOPS->( DbAppend() )
      IF NetErr()
         TONE(1234)
         nError++
         BREAK
      ELSE
         nRec := TESTOPS->(RECNO())
         IF TESTOPS->(DbRLock(nRec))
            REPLACE ...
            TESTOPS->(DbRUnlock(nRec))
            //
            // need for Win7 "original" if other have SP1 RC
            //
            TESTOPS->(DbSkip(0))
         ELSE
         ENDIF
      ENDIF
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: oError:genCode : 8999

Beitrag von ramses »

Hi

der Fehler 8999 hat mich lange auch durch solch sporadische Dinge geärgert. Nach langem Abwägen habe dann meine Fehlerroutine geändert, so dass diese bei einem 8999 Fehler zuerst nach einem kurzen Sleep von einigen 1/100 Sek. 5 Mal ein retry Versucht bevor ein Fehler ausgegeben wird. Seit dieser Anpassung meiner errorsys() habe ich nie mehr von einem Kunden einen 8999 Fehler gemeldet bekommen......

Cu Carlo
Valar Morghulis

Gruss Carlo
Antworten