环境是ASP+MYSQLSubDelClass()DimChildStr,nChildStrDimRss,RscDimRs,SQL'OnErrorResumeNextSetRs=Conn.Execute("SELECTParentStr,Child,Depth,ParentIDFROMClassifyWHEREModuleID="&...
环境是ASP+MYSQL
Sub DelClass()
Dim ChildStr,nChildStr
Dim Rss,Rsc
Dim Rs,SQL
'On Error Resume Next
Set Rs = Conn.Execute("SELECT ParentStr,Child,Depth,ParentID FROM Classify WHERE ModuleID = "& ModuleID &" And ID=" & Request("editid"))
If Not (Rs.EOF And Rs.BOF) Then
If Rs(1) > 0 Then
ErrMsg = "
该分类含有下属分类,请删除其下属分类后再进行删除本分类的操作"Founderr = True
Exit Sub
End If
If Rs(3) > 0 Then
ChildStr = "," & Request("editid")
SQL = "SELECT ID,ParentStr FROM Classify WHERE ModuleID = "& ModuleID &" And ID=" & Request("editid")
Set Rss = Conn.Execute (SQL)
SQL = "SELECT ID,ChildStr FROM Classify WHERE ModuleID = "& ModuleID &" And ID in (" & Rss("ParentStr") & ")"
Set Rsc = Conn.Execute (SQL)
Do While Not Rsc.EOF
nChildStr = Replace(Rsc("ChildStr"), ChildStr, "")
Conn.Execute ("UPDATE Classify SET ChildStr='"&nChildStr&"' WHERE ModuleID = "& ModuleID &" And ID = " & Rsc("ID"))
Rsc.movenext
Loop
Rsc.Close
Set Rsc = Nothing
Set Rss = Nothing
End If
If Rs(2) > 0 Then
Conn.Execute ("UPDATE Classify set Child=Child-1 WHERE ModuleID = "& ModuleID &" And ID in (" & Rs(0) & ")")
End If
SQL = "DELETE FROM Classify WHERE ModuleID = "& ModuleID &" And ID=" & Request("editid")
Conn.Execute (SQL)
Call DelRelated
End If
Set Rs = Nothing
Conn.Execute("UPDATE Classify SET Child=0 WHERE ModuleID="& ModuleID &" And Child<0")
CheckAndFixClass 0,1
response.write ("恭喜您!分类删除成功。")
End Sub
Sub ResumeClass()
CheckAndFixClass 0,1
Response.Redirect Request.ServerVariables("HTTP_REFERER")
End Sub
Sub CheckAndFixClass(ParentID,Orders)
Dim Rs,Child,ParentStr
If ParentID=0 Then
Conn.Execute("UPDATE Classify SET Depth=0,ParentStr='0' WHERE ModuleID="& ModuleID &" And ParentID=0")
End If
Set Rs=Conn.Execute("SELECT ID,RootID,ParentStr,Depth FROM Classify WHERE ModuleID="& ModuleID &" And ParentID="&ParentID&" ORDER BY RootID,Orders")
Do while Not Rs.EOF
If Rs(2)<>"0" Then
ParentStr=Rs(2)&","&Rs(0)
Else
ParentStr=Rs(0)
End If
Conn.Execute "UPDATE Classify SET Depth="&Rs(3)+1&",ParentStr='"&ParentStr&"',RootID="&rs(1)&" WHERE ModuleID="& ModuleID &" And ParentID="&Rs(0)&"",Child
Conn.Execute("UPDATE Classify SET Child="&Child&",Orders="&Orders&" WHERE ModuleID="& ModuleID &" And ID="&Rs(0)&"")
Orders=Orders+1
CheckAndFixClass Rs(0),Orders
Rs.MoveNext
Loop
Set Rs=Nothing
End Sub
Sub DelRelated()
'On Error Resume Next
'删除该分类下的所有文章、评论或其它相关内容
End Sub
Sub DelClassDir()
'On Error Resume Next
'删除分类目录操作
response.write ("恭喜您!分类目录删除成功。")
End Sub
展开