Home > Domino Tips > Developer > LotusScript > Passing the 65k limit
Domino Tips:
EMAIL THIS
 TIPS & NEWSLETTERS TOPICS 

LOTUSSCRIPT

Passing the 65k limit


Cathy Fitzherbert
10.14.2004
Rating: -3.50- (out of 5)


Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us   


View member feedback to this tip.

I needed to do a search on a large amount of data and came across the 65k limit. I have developed a workaround using LotusScript.

If I had been able to do this in formula language it would have been something like:

@Unique(@DbLookup( "" : "NoCache" ; 
"" ; "myview" ; "abc" ; 2 ))

Here is a summary of the script process:

First set up a database search and put all the matching documents into a folder. The first column in the folder is categorized with the data you want. Cycle through the entries and set up an array with details from this column. You now have an array with all the data and can continue with whatever other work needs to be done. The folder can now be emptied.

  
 Dim session As New NotesSession
 Dim db As NotesDatabase
 Dim collection As NotesDocumentCollection
 Dim searchFormula As String  
 Dim view As NotesView
 Dim entry As NotesViewEntry
 Dim nextEntry As NotesViewEntry
 Dim i As Integer
 Dim viewNav As NotesViewNavigator
 Dim doc As NotesDocument 
 
 Set db = session.CurrentDatabase
 'set up the search criteria - eg
 searchFormula$ = { @Contains
(@LowerCase(Field1); "abc") & 
@IsUnavailable
($conflict)  }

 'do the search and put into a temporary folder
 Set collection = db.Search
(searchFormula$,Nothing ,0)    
 Call collection.PutAllInFolder( "(tempFolder)" )

 'create a view navigator (the first column 
is categorised)
 Set view = db.GetView("(tempFolder)")
 Set viewNav = view.CreateViewNav

 'get the first entry and then cycle through the rest
 Set entry = viewNav.getFirst
 Do While entry.iscategory
  Set nextEntry = viewNav.getNext(entry)
  Set doc = nextEntry.document
  'put the values into an array for using later
  Redim Preserve Array(i)
  Array(i) = doc.Field1(0)
  i = i + 1
  Set nextEntry = viewNav.getNextCategory(entry)
  If nextEntry Is Nothing Then Exit Do
  Set entry = nextEntry
 Loop 

 'empty the folder so it can be used again
 Call collection.RemoveAllFromFolder
( "(tempFolder)" )
 

MEMBER FEEDBACK TO THIS TIP

What happens if several users use this function simultaneously? In my opinion, you must use private folders (or shared, private on first use).

—Axel

******************************************

I designed this function to be used as an overnight server process so multi-user functionality was not a requirement. I see no problem with using personal folders. These can be created and removed just as easily.

—Cathy Fitzherbert, tip author

******************************************

Can you please elaborate on how this 65k limit was reached?

—Anthony R.

******************************************

The 65k limit was reached due to the large amount of data in the result set. Both @DbColumn and @DbLookup have this limitation and this is a known problem. I'm not sure if this is fixed in R6.

—Cathy Fitzherbert, tip author

Do you have comments on this tip? Let us know.

This tip was submitted to the SearchDomino.com tip exchange by member Cathy FitzHerbert. Please let others know how useful it is via the rating scale below. Do you have a useful Notes/Domino tip or code to share? Submit it to our monthly tip contest and you could win a prize and a spot in our Hall of Fame.

Rate this Tip
To rate tips, you must be a member of SearchDomino.com.
Register now to start rating these tips. Log in if you are already a member.




Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us   



RELATED CONTENT
LotusScript
LotusScript finds the first occurrence of a string from the right
Clear Recent Contacts view and prevent repopulation in Lotus Notes 8.x
Search Microsoft Active Directory with LotusScript
Three steps to trap and handle save conflicts with LotusScript
Troubleshoot agents by displaying LotusScript variables online
LotusScript sorts lists alphabetically
LotusScript code rebuilds corrupted busytime.nsf file
Soft-code item names to facilitate LotusScript management
LotusScript agent automates selective mail file replication
LotusScript filters and attaches files to a Notes form

LotusScript
LotusScript finds the first occurrence of a string from the right
Clear Recent Contacts view and prevent repopulation in Lotus Notes 8.x
Search Microsoft Active Directory with LotusScript
Three steps to trap and handle save conflicts with LotusScript
Troubleshoot agents by displaying LotusScript variables online
LotusScript sorts lists alphabetically
Run or restart Notes/Domino agents via text messages
LotusScript code rebuilds corrupted busytime.nsf file
Soft-code item names to facilitate LotusScript management
LotusScript agent automates selective mail file replication

RELATED RESOURCES
2020software.com, trial software downloads for accounting software, ERP software, CRM software and business software systems
Search Bitpipe.com for the latest white papers and business webcasts
Whatis.com, the online computer dictionary

DISCLAIMER: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.



Domino & Lotus Notes Security Solutions: Authentication, Antispam, Encryption and Antivirus
HomeTopicsITKnowledge ExchangeTipsAsk the ExpertsMultimediaWhite PapersDomino IT Downloads
About Us  |  Contact Us  |  For Advertisers  |  For Business Partners  |  Site Index  |  RSS
SEARCH 
TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations' technology projects - with its network of technology-specific websites, events and online magazines.

TechTarget Corporate Web Site  |  Media Kits  |  Site Map




All Rights Reserved, Copyright 1999 - 2009, TechTarget | Read our Privacy Policy
  TechTarget - The IT Media ROI Experts