Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: DAU-in am 11.07.07 - 08:12:55

Titel: wie Länge der bisher vorhandenen Feldnamen feststellen?
Beitrag von: DAU-in am 11.07.07 - 08:12:55
Ich habe recht viele Felder in meiner Lieblingsdatenbank, und würde einmal die Gesamtlänge der bisher vorhandenen Feldnamen feststellen.
Gibt es dafür eine Möglichkeit?

Grüsse

spielerin
Titel: Re: wie Länge der bisher vorhandenen Feldnamen feststellen?
Beitrag von: koehlerbv am 11.07.07 - 08:25:53
Guckst Du hier bei der IBM: Tools to show the UNK table size for a Notes database (http://www-1.ibm.com/support/docview.wss?rs=0&uid=swg24004373)
Sehr hilfreich in Deinem Fall.

Bernhard
Titel: Re: wie Länge der bisher vorhandenen Feldnamen feststellen?
Beitrag von: DAU-in am 11.07.07 - 08:51:48
das ist genau das was ich brauche
Titel: Re: wie Länge der bisher vorhandenen Feldnamen feststellen?
Beitrag von: koehlerbv am 11.07.07 - 09:07:35
Ich weiss  ;)
Andreas' Posting von gestern (http://atnotes.de/index.php?topic=37011.msg232972#msg232972) führte (fast) genau zu dieser sehr hilfreichen IBM-Seite (da das Tool mittlerweile verschoben wurde, war noch etwas Suche in der KB erforderlich).

Bernhard
Titel: Re: wie Länge der bisher vorhandenen Feldnamen feststellen?
Beitrag von: DAU-in am 11.07.07 - 09:10:15
das Blöde beim suchen ist immer, dass man einfach nur den richtigen Suchbegriff eingeben muss
Titel: Re: wie Länge der bisher vorhandenen Feldnamen feststellen?
Beitrag von: koehlerbv am 11.07.07 - 09:14:53
Ich habe einfach nach dem Namen des Tools gesucht, auf das in Andreas' Posting hingewiesen wurde:
Zitat
here is a utility available which shows the UNK table of a database; please refer to the online resource document, "Tool to Show the UNK Table Size for a Notes Database" (#2579) for information on this utility.
  ;)

Bernhard
Titel: Re: wie Länge der bisher vorhandenen Feldnamen feststellen?
Beitrag von: DAU-in am 11.07.07 - 11:32:39
so, jetzt bin ich komplett verwirrt.
das Tool läuft bei mir nicht, daher habe ich mir einen Miniagenten geschrieben, der die Länge aller Feldnamen aufaddiert, um überhaupt einmal einen Überblick zu bekommen, was in der DB los ist.

Sub Initialize
   Dim session    As New NotesSession
   Dim db       As  NotesDatabase
   Dim lenCount    As Long
   Dim varForms   As Variant
   Dim varfields  As Variant
   
   Set db = session.CurrentDatabase
   varForms = db.forms
   
   lenCount = 0
   
   Forall forms In varForms
      
      
      If Not (Right(forms.name, 2)= "re" Or Left(forms.name, 3)= "LEI") Then 'keine doppelten Feldnamen
         varFields = Forms.fields
         
         Forall fields In varFields
            
            lenCount = lenCount + Len(Cstr(fields))
            
         End Forall
         
      End If
      
   End Forall
   Print lenCount
   
   
   
End Sub

Probeweise habe ich jetzt eine neue DB erstellt, mit ganz vielen,superlangen Feldnamen.
Nach der zweiten Maske hat er gemeckert, dass er die 'allow more fields' will, hat er bekommen,
und jetzt habe ich eine Gesamtlänge der Feldnamen von ca. 80.000.

Habe ich einen Denkfehler bei meiner Annahme mit den Feldlängen, oder gilt die 64k-Grenze nur, wenn 'allow more fields' nicht angehakelt ist?
In der Hilfe steht ja:

Fields in a database   ~ 3000 (limited to ~ 64K total length for all field names). You can enable the database property "Allow more fields in database" to get up to 22,893 uniquely-named fields in the database.

ich hatte das 64k Limit auf beide Fälle bezogen, aber vielleicht liegt auch hier mein Denkfehler.