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>")
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.
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
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