webForumDet fria alternativet
Logga in / Bli medlem

Radera kategori med x antal underkategorier

ASP

9 svar · 409 visningar · startad av calson

Medlem sedan dec. 2003487 inlägg
Frågan#1

Hej
Sitter helt tom i huvudet efter en hård dags kodning :)

Jag vill göra ett adminskript som raderar en utvald kategori tillsammans med dess underkategorier.

Någon som känner sig manad att hjälpa till

Tack på förhand

Medlem sedan maj 20018 027 inlägg
#2

Möjligt att någon kanske gör om du beskriver vad det handlar om.

Medlem sedan jan. 20022 440 inlägg
#3
<% dim strSQL
dim intCatID

intCatId = Request.Querystring("cat")
strSQL = ("DELETE * FROM tblCategories, tblSubCategories WHERE categoryID = " & intCatID & " ")
objConn.Execute strSQL,,128
%>

Annars är det bästa att du söker på "Cascading Deletes"

Medlem sedan jan. 20023 327 inlägg
#4

CatZ skrev:

Annars är det bästa att du söker på "Cascading Deletes"

(y)

Medlem sedan dec. 2003487 inlägg
#5

tackar ska söka

Medlem sedan dec. 2003487 inlägg
#6

sökningen gav tyvär inga resultat.

Detta har jag gjort såhär långt men har svårtigheter eftersom man raderar poster och kan därför inte loopa som jag vill. Detta felmedelande får jag

Feltyp:
ADODB.Recordset (0x800A0BCD)
Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats. Den begärda åtgärden kräver en aktuell post.
del.asp, line 91

    objConr.execute("Delete From tbl Where id=" &intID)
    GetDelId intId
    intX = 1
	

    sub GetDelId(parentDelId)

      strSql=("Select ID From tbl Where intRefID=" & parentDelId)
      set objRs = objConr.Execute(strSql)

      if not objRs.EOF then

	    do until objRs.EOF Or intX = 100
		intNewId = objRs("ID")
	       objConr.execute("Delete From tbl Where intRefId=" & parentDelId)
	       GetDelId intNewId
		intX = intX + 1
	    objRs.MoveNext [b]<--- Rad 91[/b]
	    loop

      end if

    end sub

    objRs.Close

    response.write(intX & "<br>")
Medlem sedan maj 20018 027 inlägg
#7

Vad använder du intX till? Varför ska den räknas upp? Varför har du den som ett villkor i loopen överhuvudtaget?

Medlem sedan jan. 20022 440 inlägg
#8

Det jag menader är att om du har en relationsdatabas och ställer in relationerna på cascading updates/deletes så slipper du göra sånt här. Då tas alla underkategorierna bort när du tar bort huvudkategorin.

Medlem sedan dec. 2003487 inlägg
#9

intX skriver ut hur många poster som raderas

Jag gör detta lita för att lära mig och men den databasstrukturen jag har måste man kolla varje id eftersom en underkategori använder kategorin övers id som refid. Eller missförstod jag dig igen :)

Medlem sedan juni 200032 967 inlägg
#10

Det ser ut som att du försökt att ge dig på någon sorts rekursiv historia. Antagligen beror dina problem på att objRS inte är lokalt i suben. Så: deklarera objRS inne i din subrutin, så den blir lokal, och plocka in stängning och förstörelse av det objektet.

263 ms totalt · 4 externa anrop · v20260731065814-full.14655e19
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)