Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Build directory structure
Message
 
 
To
13/08/2009 10:21:53
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows XP SP2
Miscellaneous
Thread ID:
01417859
Message ID:
01417887
Views:
62
GO BOTTOM is not going to help, since it is not optimizable. It's hard to imagine it causing as dramatic a slowdown as you are seeing, though.

Out of curiosity, why do you need to add so many directories at once? Is this something that has to be done often? If not, and if it were me, I would accept the slowness of the operation and not worry about it.

>OK, here:
>mBuildCustomerDocumentStructure('entrypoint\*.*', 1)
>
>*mBuildCustomerDocumentStructure
>
>LPARAMETERS tcStartPoint, tnParentId
>LOCAL lnFileNumber, lnMenuId, lnCount, arr
>WITH This
>	DIMENSION arr (1, 1)
>	IF !USED('tree')
>		CREATE CURSOR tree (menuid I, parentid I NULL, name char(100), folder I DEFAULT 1)
>		APPEND BLANK		
>		REPLACE menuid WITH 1, ;
>			parentid WITH NULL, ;
>			name WITH 'Customer Documents'
>	ENDIF
>	SELECT tree
>	lnFileNumber = ADIR(arr, tcStartPoint, 'D')
>	FOR lnCount = 1 TO lnFileNumber
>		IF arr(lnCount, 1) = '.'
>			LOOP
>		ENDIF
>			
>		GO BOTTOM
>		lnMenuId = menuid + 1
>		APPEND BLANK		
>		REPLACE menuid WITH lnMenuId, ;
>			parentid WITH IIF(RECCOUNT() = 1, NULL, tnParentId), ;
>			name WITH IIF(RECCOUNT() = 1, 'Customer Documents', arr(lnCount, 1))
>		IF AT('D', arr(lnCount, 5)) # 0
>			.mBuildCustomerDocumentStructure(STRTRAN(tcStartPoint, '*.*', '') + arr(lnCount, 1) + '\*.*', menuid)
>		ELSE
>			REPLACE folder WITH 0	
>		ENDIF		
>	ENDFOR
>ENDWITH
>
>>Hi Mark,
>>
>>depends on where the slowness comes from... When it's your code, we might be able to help if you show it to us. If the problem is the mere number of directories, there's little you can do except for using cached or indexed information.
Previous
Reply
Map
View

Click here to load this message in the networking platform