Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: bikerboy am 11.11.10 - 09:38:34
-
Hallo ich habe hier eine DB die beim Versuch Sie mit einem 7er Client zu öffnen den oben genannten Fehler bringt. Ich habe mal versucht das ganze zu debuggen, der Fehler kommt aber vor dem DB-Script Event Postopen.
Läuft da noch irgend ein anderer Code vorher? Hatte zuerst an meine Shared-Actions gedacht, aber die enthalten lediglich @Functions, sollten also nicht so eine Fehlermeldung provozieren.
Kollegen meinten, dass da das Design schief ist, aber ein Compact hat keine Besserung gebracht.
Da das Design ursprünglich mit 8.5 erstellt wurde habe ich überlegt, ob es vllt Sinn macht, den Code mal mit dem 7er Client zu kompolieren.
Bin dankbar für jeden Vorschlag
-
Das 8er Design ist nicht 7er Kompatibel.
Das gab es schonmal. Ich glaub beim wechsel von 5 nach 6
Versuch mal die Datenbank im 7er Designer zu öffnen, dann recompile all und schauen was passiert.
-
No Resume kommt, wenn in Script in einer Fehlerroutine kein Resume Next oder Exit Sub/Function angegeben ist.
Also
On Error Goto Fehler
...
Fehler:
'mach irgendwas
Exit Sub
End Sub
Vielleicht ist 8.5 da nicht so pingelig. Ich würde daher mal die Fehlerroutinen überprüfen, kann ja sein, dass Notes diesen Fehler feststellt, bevor das erste Script ausgeführt wird, daher auch keine Chance, mit dem Debugger das zu finden.
Die Inkompatibilität zwischen 5 und 6 kann ich nicht bestätigen, ich entwickel sowohl unter 5 als unter 7 problemlos parallel (natürlich geht das nur mit dem 5er Funktionsumfang).
-
Ein Error Handling On Goto... braucht auch immer ein Resume. Also so
On Error Goto Fehler
...
Ende:
Exit sub
Fehler:
'mach irgendwas
Resume Ende
End Sub
-
Hatte ich vergessen zu erwähnen. Meine Funktionen haben alle einen Errorhandler
-
Ein Error Handling On Goto... braucht auch immer ein Resume. Also so
On Error Goto Fehler
...
Ende:
Exit sub
Fehler:
'mach irgendwas
Resume Ende
End Sub
Exit Sub oder Exit Function funktioniert auch, habe ich schon seit Jahren so laufen (in allen Versionen zwischen 5 und 8.5)
-
Hallo,
Was soll denn beim Oeffnen der Db eigentlich geoeffnet werden?
(eine Rahmengruppe, in der eine Maske geoeffnet wird, eine Ansicht, ...)
Wenn ja, was ist denn bei diesen Elementen in den gaengigen Script-Events enthalten?
Hatte ich vergessen zu erwähnen. Meine Funktionen haben alle einen Errorhandler
Kann ja auch sein. Aber eventuell hast Du bei der Behandlung eines Fehlers innerhalb Deiner Routinen gerade ein Resume Next, Resume <Sprungmarke> oder ein Exit Sub/Function vergessen.
Andreas
-
Es wird eine einfach Rahmengruppe geöffnet, ohne Scriptevente
Keine Resume vergessen!
-
Und was wird in den einzelnen Rahmn der Rahmengruppe geoeffnet?
Andreas
-
3 Ansichten, eine Navigation und eine Seite
in der Navigation ist hinter dem ersten Eintrag ein Verweis auf einen Ordner der "shared, private on first Use" als Eigenschaft hat. In dessen Postopen Event ist auch Script, das keinen Errorhandler hat, aber da hole ich mir lediglich ne Collection und bevor ich weiter drauf zu greife prüfe ich ob der Count 0 ist. Aber dadurch, dass ich kein "On Error Goto..." habe sollte ich ja ne Fehlermeldung bekommen und nicht einfach nur nen "NO REUSME"
-
3 Ansichten, eine Navigation und eine Seite
in der Navigation ist hinter dem ersten Eintrag ein Verweis auf einen Ordner der "shared, private on first Use" als Eigenschaft hat. In dessen Postopen Event ist auch Script, das keinen Errorhandler hat, aber da hole ich mir lediglich ne Collection und bevor ich weiter drauf zu greife prüfe ich ob der Count 0 ist. Aber dadurch, dass ich kein "On Error Goto..." habe sollte ich ja ne Fehlermeldung bekommen und nicht einfach nur nen "NO REUSME"
Bevor Du ein
collection.Count
machtst, musst Du die collection auf not Nothing prüfen! Ansonsten bekommst Du einen Fehler "Object variable not set".
Und da die view privat ist, kann da auch ein ganz anderer Code stehen. Am besten wird es sein, am Client des Anwenders die private View zu löschen und die DB dann erneut aufzurufen.
-
Die Collection kann nicht Nothing sein, da sie über ein
Set collection = db.search
instanziierrt wird.Also immer existiert. Desweiteren hat er diese Ansicht ja noch nicht mal da er noch nicht in der Ansicht war!
Meinst du mit der privaten Ansicht, dass er ggf. nicht an einem Update mitgemacht hat und deswegen, vllt noch allten Code hat, der nen Fehler wirft ?
-
So habe noch was rausgefunden.
Beim öffnen der DB wird vor meinem Code, folgende Aktionen ausgeführt.
Notesdatabase.GetProfileDocument
Notesdatabase.Open
genau in der Reihenfolge. Ist das noch vom DBMS ?
Rausgefunden habe ich das darüber, dass ich alle ECL-Gegenzertifikate unseres Server gelöscht habe.