Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Allowed do nesting or expression evaluation level exceed
Message
 
 
To
02/08/2007 16:58:26
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
01245678
Message ID:
01245683
Views:
24
Do you know the exact line of the procedure that causes this error?

From the quick glance through the code I see few minor problems, such as using macro in both places when it's not needed at all.

I would also change RUN into ShellExecute or Shell.Run method.

Also I would test for return status of the tableupdate.

These are quick pointers, they may not help to sovle the original problem.

>I have a routine that if I run once it works fine.
>
>But if I run it twice in a row, I will get the following error when trying to close my form. "allowed do nesting or expression evaluation level exceeded"
>
>I don't think you'll need it but just in case, here is my code:
>
>
>LOCAL lcContact, lcEnduser, lcDesc, lcTabdia, lcCup,;
>	lcBisect, lcLand, lcDetail, lcProduct, lcDate_drawn, lcDrawn_by,;
>	lcRefdwg, lcNote, lcDwgnum, lcHobnum, lcBisang, lcBisdp, lcBiswd,;
>	lcBisangr, lcBisangf, lcBisangs, lcBistype, lcPrefix, lcBevang,;
>	lcCuprad, lcBrkrad, lcRefdia, lcDieid, lcUptip, lcLptip, lcDieplus,;
>	lcDieminus, lcUpplus, lcUpminus, lcLpplus, lcLpminus, lcMajrad,;
>	lcMinrad, lcCbescdp, lcBisect, lnLength, lcCurTable, lcBinnum, lcDate
>lcCurTable=alias()	
>lcDate=dtoc(date())
>lcDate=stuff(lcDate,7,2,'')
>lcBinNum=''
>
>*DEFINE page2 data
>lcDieid=upper(alltrim(datadh.dieid))
>lcDieplus=upper(alltrim(datadh.dieidplus))
>lcDieminus=upper(alltrim(datadh.dieidminus))
>lcUptip=upper(alltrim(datadh.uptip))
>lcUpplus=upper(alltrim(datadh.upplus))
>lcUpminus=upper(alltrim(datadh.upminus))
>lcLptip=upper(alltrim(datadh.lptip))
>lcLpplus=upper(alltrim(datadh.lpplus))
>lcLpminus=upper(alltrim(datadh.lpminus))
>lcCuprad=upper(alltrim(datadh.cuprad))
>lcCbescdp=upper(alltrim(datadh.cbescdp))
>lcMajrad=upper(alltrim(datadh.majrad))
>lcMinrad=upper(alltrim(datadh.minrad))
>lcBevang=upper(alltrim(datadh.bevang))
>lcBrkrad=upper(alltrim(datadh.brkrad))
>lcRefdia=upper(alltrim(datadh.refdia))
>*DEFINE PAGE1 DATA
>lcPrefix=upper(alltrim(datadh.prefix))
>lcContact=upper(alltrim(datadh.contact))
>lcContact=strtran(lcContact," ","!")
>lcEnduser=upper(alltrim(datadh.enduser))
>lcEnduser=strtran(lcEnduser," ","!")
>lcTabdia=upper(alltrim(datadh.tabdia))
>lcCup=upper(alltrim(datadh.cup))
>**lcCup=lcCup+" ± .003"
>lcCup=strtran(lcCup," ","!")
>lcBisect=upper(alltrim(datadh.bisect))
>lcLand=upper(alltrim(datadh.land))
>lcDetail=upper(alltrim(datadh.detail))
>lcDetail=strtran(lcDetail," ","!")
>lcHobnum=upper(alltrim(datadh.hobnum))
>lcDrawingnum=upper(alltrim(str(datadh.drawingnum)))
>lcDwgnum=lcDrawingnum
>lcProduct=upper(alltrim(datadh.product))
>lcProduct=strtran(lcProduct," ","!")
>DO case
>CASE len(lcDrawingnum)=1
>	lcDrawingnum="0000000"+lcDrawingnum
>CASE len(lcDrawingnum)=2
>	lcDrawingnum="000000"+lcDrawingnum
>CASE len(lcDrawingnum)=3
>	lcDrawingnum="00000"+lcDrawingnum
>CASE len(lcDrawingnum)=4
>	lcDrawingnum="0000"+lcDrawingnum
>CASE len(lcDrawingnum)=5
>	lcDrawingnum="000"+lcDrawingnum
>CASE len(lcDrawingnum)=6
>	lcDrawingnum="00"+lcDrawingnum
>CASE len(lcDrawingnum)=7
>	lcDrawingnum="0"+lcDrawingnum
>ENDCASE
>
>select bin
>locate for alltrim(bin.hobnum)=alltrim(lcHobnum)
>if found()=.t.
>	lcBinnum=alltrim(str(bin.binloc))
>endif
>lcPathstring="i:\drawings\dat\"+lcDrawingnum+".dat"
>handle=fcreate("&lcPathstring")
>*WRITE page1 data
>IF len(lcDrawingnum)>=3
>	FPUTS(handle,"dwgnum "+lcDwgnum)
>ENDIF
>IF len(lcPrefix)>=3
>	FPUTS(handle,"prefix "+lcPrefix)
>ENDIF
>IF len(lcContact)>=3
>	FPUTS(handle,"contact "+lcContact)
>ENDIF
>IF len(lcEnduser)>=3
>	FPUTS(handle,"enduser "+lcEnduser)
>ENDIF
>IF len(lcTabdia)>=3
>	FPUTS(handle,"tabdia "+lcTabdia)
>ENDIF
>IF len(lcCup)>=3
>	FPUTS(handle,"cup "+lcCup)
>ENDIF
>IF len(lcBisect)>=3
>	FPUTS(handle,"bisect "+lcBisect)
>ENDIF
>IF len(lcLand)>=3
>	FPUTS(handle,"land "+lcLand)
>ENDIF
>IF len(lcDetail)>=3
>	FPUTS(handle,"detail "+lcDetail)
>ENDIF
>IF len(lcHobnum)>=3
>	FPUTS(handle,"hobnum "+lcHobnum)
>ENDIF
>IF len(lcProduct)>=3
>	FPUTS(handle,"product "+lcProduct)
>ENDIF
>*WRITE PAGE2 DATA
>IF len(lcDieid)>=3
>	FPUTS(handle,"dieid "+lcDieid)
>ENDIF
>IF len(lcDieplus)>=3
>	FPUTS(handle,"die+tol "+lcDieplus)
>ENDIF
>IF len(lcDieminus)>=3
>	FPUTS(handle,"die-tol "+lcDieminus)
>ENDIF
>IF len(lcUptip)>=3
>	FPUTS(handle,"uptip "+lcUptip)
>ENDIF
>IF len(lcUpplus)>=3
>	FPUTS(handle,"up+tol "+lcUpplus)
>ENDIF
>IF len(lcUpminus)>=3
>	FPUTS(handle,"up-tol "+lcUpminus)
>ENDIF
>IF len(lcLptip)>=3
>	FPUTS(handle,"lptip "+lcLptip)
>ENDIF
>IF len(lcLpplus)>=3
>	FPUTS(handle,"lp+tol "+lcLpplus)
>ENDIF
>IF len(lcLpminus)>=3
>	FPUTS(handle,"lp-tol "+lcLpminus)
>ENDIF
>IF len(lcCuprad)>=3
>	FPUTS(handle,"cuprad "+lcCuprad)
>ENDIF
>IF len(lcCbescdp)>=3
>	FPUTS(handle,"cbescdp "+lcCbescdp)
>ENDIF
>IF len(lcMajrad)>=3
>	FPUTS(handle,"majrad "+lcMajrad)
>ENDIF
>IF len(lcMinrad)>=3
>	FPUTS(handle,"minrad "+lcMinrad)
>ENDIF
>IF len(lcBevang)>=3
>	FPUTS(handle,"bevang "+lcBevang)
>ENDIF
>IF len(lcBrkrad)>=3
>	FPUTS(handle,"brkrad "+lcBrkrad)
>ENDIF
>IF len(lcRefdia)>=3
>	FPUTS(handle,"refdia "+lcRefdia)
>ENDIF
>IF len(lcBinnum)>=1
>	FPUTS(handle,"bin "+lcBinnum)
>ENDIF
>if len(lcDate)>=2
>	fputs(handle,"date "+lcDate)	
>endif	
>
>FCLOSE(handle)
>
>LOCAL lcRunstring, lcTooldwgnum
>lcTooldwgnum=upper(alltrim(thisform.tooldwgnum.value))
>IF NOT EMPTY(lcToolDwgNum)
>	lcToolDwgNum=PADL(ALLTRIM((lcToolDwgNum)),8,'0')
>
>	m.facenum=val(lcDrawingNum)
>	m.toolnum=val(lcToolDwgNum)
>	m.dateused=date()
>	SELECT dwgusage
>	insert into DWGUSAGE from memvar
>	=TABLEUPDATE(.t.)
>	select (lcCurTable)
>*!*		DO case
>*!*			CASE (at("MROACH",upper(sys(0))))>0
>*!*				lcRunstring="C:\vcadwin\run2d.bat "+lcTooldwgnum+" "+lcDrawingnum
>*!*			CASE (at("STYSINGER",upper(sys(0))))>0
>*!*				lcRunstring='c:\vcadwin\run2d.bat '+lcTooldwgnum+" "+lcDrawingnum
>*!*			case (at("KASSRA",upper(sys(0))))>0
>*!*				lcRunstring='c:\vcadwin\run2d '+lcTooldwgnum+" "+lcDrawingnum
>*!*			case (at("TCHILDRESS",upper(sys(0))))>0
>*!*				lcRunstring="C:\vcadwin\run2d.bat "+lcTooldwgnum+" "+lcDrawingnum		
>*!*		ENDCASE
>	lcRunstring="C:\vcadwin\run2d.bat "+lcTooldwgnum+" "+lcDrawingnum	
>	RUN "&lcRunstring"
>ELSE
>	thisform.omessage.warning(PROPER('Enter a Tool Drawing Number First'))
>	thisform.requery()
>endif
>
If it's not broken, fix it until it is.


My Blog
Previous
Reply
Map
View

Click here to load this message in the networking platform