Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: eknori am 20.02.10 - 12:46:58

Titel: Anzahl Variablen in Klasse begrenzt??
Beitrag von: eknori am 20.02.10 - 12:46:58
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 )
Titel: Re: Anzahl Variablen in Klasse begrenzt??
Beitrag von: eknori am 20.02.10 - 13:21:28
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

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.
Titel: SOLVED: Anzahl Variablen in Klasse begrenzt??
Beitrag von: eknori am 20.02.10 - 14:05:44
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 ?
Titel: Re: Anzahl Variablen in Klasse begrenzt??
Beitrag von: koehlerbv am 20.02.10 - 23:02:23
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
Titel: Re: Anzahl Variablen in Klasse begrenzt??
Beitrag von: Glombi am 22.02.10 - 09:10:54
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