Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: jor am 18.07.06 - 10:43:12

Titel: Anzahl max. Zeilen im Array?
Beitrag von: jor am 18.07.06 - 10:43:12
Hallo zusammen,

ich würde mich freuen, wenn mir jemand folgende Frage beantworten kann:
Ich habe einen eigenen Datentyp erstellt, in diesem sind fünf Datenfelder vom Typ String enthalten.
Mit der Angabe "ReDim liste(anz) as myDatentyp" möchte ich das Array auf etwas mehr als 70.000
Datensätze bringen. Bekomme aber immer eine Overflow-Meldung, beim ca 40.000ten Eintrag.
Die Speicherauslastung im Taskmanager sieht ok aus, bei Abbruch sind noch mehr als 200 MB aktuell zur Verfügung.

Wird solch ein Array auf Zeilenanzahl oder auf die Menge an eingelesenen Daten begrenzt? Habe im INet bei meiner Suche nichts gefunden.


Titel: Re: Anzahl max. Zeilen im Array?
Beitrag von: 0xse am 18.07.06 - 10:45:49
Felder / Arrays > max 64 KByte

Wenn du den Index selbst verwaltest, ein signed Integer geht nur bis 32768. Nimmst halt Long :)
Titel: Re: Anzahl max. Zeilen im Array?
Beitrag von: jor am 18.07.06 - 10:54:26
Hi Oxse,

danke für deine Antwort, aber ich muss gestehen, ich habe schon Long als Datentyp für die
Deklarationsvariable genommen, aber vergessen dieses zu erwähnen  ::) .
Titel: Re: Anzahl max. Zeilen im Array?
Beitrag von: diali am 18.07.06 - 10:56:27
dein Array könnte auch von -32768 bis 32767 gehen.

Schau Dir dazu in der Designer-Hilfe mal das Dokument "Limits on array variables in LotusScript" an.
Titel: Re: Anzahl max. Zeilen im Array?
Beitrag von: DerAndre am 18.07.06 - 11:01:51
Schau mal hier Dominolimits (http://www.geniisoft.com/showcase.nsf/DominoLimits)

André
Titel: Re: Anzahl max. Zeilen im Array?
Beitrag von: jor am 18.07.06 - 11:06:20
Hi Dirk,

danke für den Tipp. Ich werde gleich mal auf die Suche gehen, momentan ist mein Notes-Task mehr als busy  :-\ , und der Rechner ist dadurch belegt. Habe die Routine umprogrammiert und arbeite jetzt mit DocumentCollection, ist aber sehr zeitraubend, da vor der Verarbeitung eines Datensatzes jedesmal
nachgeschaut werden muss, ob dieser schon vorhanden ist (Vergleich über mehrere Felder, wenn der erste Vergleich True zurück gibt). Werde die Erstellung der Collection an den Anfang setzen, ist dann zwar nicht 100% aktuell, abe rich zu verschmerzen.

Danke für die Antworten nochmal an alle!
Titel: Re: Anzahl max. Zeilen im Array?
Beitrag von: ZaLudtske am 18.07.06 - 11:16:12
Hallo,

schau dir doch mal das List-Variablen an. Sie sind wahnsinnig schnell und sehr komfortabel.

Rainer
Titel: Re: Anzahl max. Zeilen im Array?
Beitrag von: jor am 18.07.06 - 11:16:26
Hallo André,

vielen Dank für deine Antwort, eine sehr interessante Seite!!
Titel: Re: Anzahl max. Zeilen im Array?
Beitrag von: jor am 18.07.06 - 11:21:47
Hallo Rainer,

danke für deine Antwort. Wenn mich jetzt nicht alles täuscht, dann kann ich in solch eine
Liste aber kein anderen Datentyp als String rein packen. Es ginge zwar auch so, da mein
Datentyp eine konstante Anzahl an Feldern hat, wäre aber beim Drüberlaufen bisschen
herausfordernd (Index und so).
Ist aber ein Vorschlag, den ich mir noch offen halte, danke.
Titel: Re: Anzahl max. Zeilen im Array?
Beitrag von: ata am 18.07.06 - 11:50:51
... da du den Weg über die Collection genommen hast - es empfiehlt sich die Dokumente dann mit GetFirstDocument < = > GetNextDocument zu initialsieren - GetNthDocument hat bei vielen Dokumenten deutliche Nachteile in der Performance...

Toni
Titel: Re: Anzahl max. Zeilen im Array?
Beitrag von: ZaLudtske am 18.07.06 - 11:51:49
Hallo,

eine List-Variable kenn jeden Datentyp annehmen. Die Verwaltung der Einträge erfplgt über einen eindeutige Schlüssel und dieser und nur dieser muß ein String sein.

Rainer
Titel: Re: Anzahl max. Zeilen im Array?
Beitrag von: Thomas Schulte am 18.07.06 - 12:11:36
danke für deine Antwort. Wenn mich jetzt nicht alles täuscht, dann kann ich in solch eine
Liste aber kein anderen Datentyp als String rein packen.
Das ist jetzt absolut und mega FALSCH.
In eine Liste kannst du alles reinpacken. Notesdocuments, ViewCollections, Strings, Integer, andere Listen, Types das ist vollkommen wurscht.
Das einzige was nicht geht (ich hab es zumindest noch ncht rausgefunden wie, sollte also jemand das schon mal gelöst haben wäre ich für einen Hinweis an dieser Stelle dankbar) ist in einen Type eine List einzubauen die wieder rum in einer List steckt. Da meckert der Compiler.

Also noch mal
type yourtypename
 name1 as string
 name2 as integer
 name3 as variant
end type

dim wasauchimmerduwillst list as yourtypename

funktioniert OHNE JEDES PROBLEM
Titel: Re: Anzahl max. Zeilen im Array?
Beitrag von: Thomas Schulte am 18.07.06 - 12:14:37
Datensätze bringen. Bekomme aber immer eine Overflow-Meldung, beim ca 40.000ten Eintrag.
Davon abgesehen würde ich da ja gar zu gerne einmal den Sourcecode dazu sehen. ReDims die immer wieder aufgerufen werden sind bei entsprechenden Datenmengen, und von denen reden wir hier ja, so ziemlich das grottenschlechteste was es an Performance überhaupt geben kann.
Titel: Re: Anzahl max. Zeilen im Array?
Beitrag von: jor am 18.07.06 - 12:19:47
Hallo Rainer,

danke für die Info, ich werde es mit den Listen mal ausprobieren, da muss ich dann doch auf dem
falschen Dampfer gewesen sein.  ;)
Titel: Re: Anzahl max. Zeilen im Array?
Beitrag von: jor am 18.07.06 - 12:23:08
Hallo Thomas,

danke für deinen Tipp, ich werde mir die List-Geschichte nochmal in Ruhe anschauen.
Das Re-Dimensionieren der Variable mache ich aber nicht permanent oder in gewissen
Zyklen, sondern nur einmalig am Start der ganzen Routine, nach dem ich weis, wie viel
Datensätze ich bearbeiten muss/werde.

Danke nochmal an alle!