Domino 9 und frühere Versionen > ND8: Entwicklung
Anzahl Variablen in Klasse begrenzt??
(1/1)
eknori:
Gibt es bei einer eigenen LS Klasse irgendeine Begrenzung, was die Anzahl der Variablen betrifft? Wenn ich in dem u.a. Code die Kommentierung herausnehme, dann kompiliert der Code ganz normal. Beim Ausführen allerdings erscheint die Fehlermeldung.
Die Variable wird nirgendwo im Code verwendet; sie ist lediglich deklariert.
Irgendwie seltsam ...
( Designer 8.5.1FP1 auf Windows 7 Ultimate )
eknori:
Ganz seltsam. Ich habe mal eine neue Datenbank angelegt, eine LS Lib erzeugt und darin die Klasse Foo,
--- Code: ---%REM
Class Foo
Description: Comments for Class
%END REM
Class Foo
'Private SomeText As String
'Private IsMomGreat As Boolean
'Private i As Integer
'Private HF As Variant
'Private strMore As String
%REM
Sub New
Description: Comments for Sub
%END REM
Sub New ()
End Sub
End Class
--- Ende Code ---
Das Problem trat auf, nachdem ich die 5. Variable eingefügt habe. Dann habe ich 2 Variablen weggenommen und es lief wieder.
Dummerweise tritt der Fehler aber auch auf, wenn ich alle Deklarationen auskommentiere.
Hatte schon die Cache.ndk im Verdacht, die wieder mal auf 30MB angewachsten war. Cache gelöscht, Notes und designer beendet und neu gestartet.
Jetzt tritt der Fehler mit dem o.a Code in der Datenbank permanent auf.
eknori:
man muss, nachdem man die Klasse verändert hat uch die Funktion(en) die die Klasse aufruft erneut abspeichern ( neu kompilieren)
Bug oder Feature?? Oder war das schon immer so und ich habe das ob meines hohen Alters vergessen? Hmm ... wer bin ich, und was wollte ich noch gleich ?
koehlerbv:
Meines Erachtens war das schon immer so - auch wenn man sich manchmal wundert, dass es doch geklappt hat, Ulrich.
Das Übelste, was man in diesem Zusammenhang anstellen kann, ist die Veränderung der Speicherorte für Variablen und andere Bezeichner. Fügst Du in einer ScriptLibrary Variablen hinzu oder neue Routinen (letzteres kann allerdings auch gut gehen), dann müssen auch die aufrufenden Module neu kompiliert werden (ist ja auch klar: Nix stimmt mehr). Ändert man hingegen von 400 Zeilen in einer Function 300, so geht das (meistens) gut. Klar - die Einsprungadressen ändern sich nicht.
Nicht ohne Grund hat ja z.B. Teamstudio dem Configurator schon sehr früh das "Recompile all" spendiert (aus meiner Sicht funktioniert das noch heute stabiler als das Pendant in der DDE), erheblich später fand sich das dann auch im Domino Designer wieder.
Deine *Klasse* an sich war hier auf jeden Fall bestenfalls der Auslöser. Provozieren kannst Du das auch mit rein prozeduralen Routinen in fremden Libs.
Bernhard
Glombi:
Das war meiner Erinnerung nach auch schon immer so.
Siehe auch die Anmerkungen von Julian Robichaux unter Recompiling Agents When Script Libraries Change in
http://www.nsftools.com/tips/NotesTips.htm
Zum Thema Konstanten:
Ich persönlich verwende in Script Libraries nur dann Konstanten, wenn es "wirklich" Konstanten sind, wie bspw. den Umrechnungsfaktor DM in EUR. Alles andere definiere ich als Variable, die im Initialize gesetzt wird. Dadurch ist ein Recompile nicht erforderlich.
Andreas
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln