100~~~~~~`关于BOM表新增检查的问题!~~急!!!请高手帮忙指点啊!!!
tbl_bom表结构如下:
ID Materialcode Parentcode
1 A B
2 A C
3 B D
......
在新增记录时,我想检查新增的内容是否会造成现有的数据库中结构循环,我的做法如下,遇到层次少的记录可以调用如下的代码,但是遇到6层以上的结构就会出现超IIS时间,无法新增数据了,请高手帮帮我啊!谢谢!!急!
<%
Function BomLoopFlag(Child,Flag,MaterialCode)
dim strsql
dim rstemp,rsbom
strsql="select Parentcode from tbl_bom where materialcode='" &child & "'"
if openconnection(strsql,rsbom,3) then
do while not rsbom.eof
if MaterialCode=rsbom("Parentcode") then
Flag=false
end if
call BomLoopFlag(rsbom("ParentCode"),Flag,MaterialCode)
rsbom.movenext
loop
end if
BomLoopFlag=Flag
end Function
ParentCode=formatstr(Request.Form("txtcParentCode"),ftsql)
MaterialCode=formatstr(Request.Form("txtcMaterialCode"),ftsql)
if not BomLoopFlag(ParentCode,1,MaterialCode) then
Response.Write "<script language=javascript>alert('所添加的物料会造成循环使用,请返回重试!');history.back()</script>"
Response.End
end if
%>