28. december 2000 - 23:58Der er
26 kommentarer og 1 løsning
Hvis findes ................
Jeg har et problem med denne kode: Case \"Del\"
Set Conn = Server.CreateObject(\"ADODB.Connection\") Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"admin/scart.mdb\") SQL1 = \"SELECT * FROM products\" Set rs = Conn.Execute (SQL1) Response.Write Session(\"categoryID\") Response.Write rs(\"ccategory\")
Do While Not rs.EOF or rs.BOF rs.movenext
if rs(\"ccategory\") = Session(\"categoryID\") then Response.Write \"kan ikke slette den da kategorien indgår i en varelinie ! \" %> <a href=\"ny.asp\" target=\"TOC\">Tilbage til Vedligehold</a> <%
loop else
SqlStr = \"DELETE FROM categories WHERE categoryID=\"+ Session(\"categoryID\")+ \";\" conntemp.Execute (SqlStr) conntemp.Close Set conntemp = Nothing response.redirect \"kategoriform.asp\" end if
som i kan se så har jeg fat i en Session, Session(\"categoryID\") , hvis værdien af denne Session er den samme som det der bliver slået på i Conn.Execute (SQL1), så må den ikke slettes, elles må den godt.
koden se ud tilat være rigtig, dog er det et problem at jeg har en IF-setning inde i en loop, hvordan løses dette ?
Ja det var jo også det jeg var kommet frem til, men hvad gør man så ? mit problem er at jeg ikke 2må\" slette hvis den samme findes i en anden tabel, åååhhhh kan man forstå dette ?
Do While Not rs.EOF or rs.BOF if rs(\"ccategory\") = Session(\"categoryID\") then Response.Write \"kan ikke slette den da kategorien indgår i en varelinie ! \" %> <a href=\"ny.asp\" target=\"TOC\">Tilbage til Vedligehold</a> <% else SqlStr = \"DELETE FROM categories WHERE categoryID=\"+ Session(\"categoryID\")+ \";\" conntemp.Execute (SqlStr) conntemp.Close Set conntemp = Nothing response.redirect \"kategoriform.asp\" end if
Do Until (rs.EOF or rs.BOF) if rs(\"ccategory\") = Session(\"categoryID\") then Response.Write \"kan ikke slette den da kategorien indgår i en varelinie ! \" %> <a href=\"ny.asp\" target=\"TOC\">Tilbage til Vedligehold</a> <% intDel = 1 Exit Do end if
rs.movenext Loop
If intDel = 0 then SqlStr = \"DELETE FROM categories WHERE categoryID=\"+ Session(\"categoryID\")+ \";\" conntemp.Execute (SqlStr) conntemp.Close Set conntemp = Nothing response.redirect \"kategoriform.asp\" End If
jeg havde lige glemt : Set Conn = Server.CreateObject(\"ADODB.Connection\") Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"admin/scart.mdb\") SQL1 = \"SELECT * FROM products\" Set rs = Conn.Execute (SQL1)
så nu ser min kode sådan ud:
Case \"Del\" Set Conn = Server.CreateObject(\"ADODB.Connection\") Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"admin/scart.mdb\") SQL1 = \"SELECT * FROM products\" Set rs = Conn.Execute (SQL1)
Do While Not rs.EOF or rs.BOF if rs(\"ccategory\") = Session(\"categoryID\") then Response.Write \"kan ikke slette den da kategorien indgår i en varelinie ! \" %> <a href=\"ny.asp\" target=\"TOC\">Tilbage til Vedligehold</a> <% else SqlStr = \"DELETE FROM categories WHERE categoryID=\"+ Session(\"categoryID\")+ \";\" conntemp.Execute (SqlStr) conntemp.Close Set conntemp = Nothing response.redirect \"kategoriform.asp\" end if
ja ok jeg havde ikkem se at du havde skrevet igen , men det var ikke løsningen, koden se nu sådan ud:
Case \"Del\" Set Conn = Server.CreateObject(\"ADODB.Connection\") Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"admin/scart.mdb\") SQL1 = \"SELECT * FROM products\" Set rs = Conn.Execute (SQL1)
Do Until (rs.EOF or rs.BOF) if rs(\"ccategory\") = Session(\"categoryID\") then Response.Write \"kan ikke slette den da kategorien indgår i en varelinie ! \" %> <a href=\"ny.asp\" target=\"TOC\">Tilbage til Vedligehold</a> <% intDel = 1 Exit Do end if
rs.movenext Loop
If intDel = 0 then SqlStr = \"DELETE FROM categories WHERE categoryID=\"+ Session(\"categoryID\")+ \";\" conntemp.Execute (SqlStr) conntemp.Close Set conntemp = Nothing response.redirect \"kategoriform.asp\" End If
<% Case \"Del\" Set Conn = Server.CreateObject(\"ADODB.Connection\") Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"admin/scart.mdb\") SQL1 = \"SELECT * FROM products WHERE ccategory=\" & Session(\"categoryID\") & \";\" Set rs = Conn.Execute(SQL1)
If Not (rs.EOF or rs.BOF) Then Response.Write \"kan ikke slette den da kategorien indgår i en varelinie ! \" %> <a href=\"ny.asp\" target=\"TOC\">Tilbage til Vedligehold</a> <% Else strSQL = \"DELETE FROM categories WHERE categoryID=\"+ Session(\"categoryID\")+ \";\" conntemp.Execute(strSQL) conntemp.Close Set conntemp = Nothing
Det virker stort set, men jeg får denne fejl: kan ikke slette den da kategorien indgår i en varelinie ! Tilbage til Vedligehold ADODB.Recordset fejl \'800a0cc1\'
Elementet kan ikke findes i den samling, der svarer til det anmodede navn eller ordenstal.
/eposter/kategoriform.asp, linje 212
det kunne se ud til at jeg ikke får lov til at kalde ny.asp
det var noget sluder jeg fik skrevet: koden er Case \"Del\" Set Conn = Server.CreateObject(\"ADODB.Connection\") Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"admin/scart.mdb\") SQL1 = \"SELECT * FROM products WHERE ccategory=\" & Session(\"categoryID\") & \";\" Set rs = Conn.Execute(SQL1)
If Not (rs.EOF or rs.BOF) Then Response.Write \"kan ikke slette den da kategorien indgår i en varelinie ! \"
%>
<BR> <a href=\"ny.asp\">Tilbage til Vedligehold</a>
<% Else strSQL = \"DELETE FROM categories WHERE categoryID=\"+ Session(\"categoryID\")+ \";\" conntemp.Execute(strSQL) conntemp.Close Set conntemp = Nothing
response.redirect \"kategoriform.asp\" End If
Case \"Fromlist\" Session(\"CurRec\") = 1 SqlStr1 = \"SELECT Count(categoryID) As TotalCount From categories;\" Set Rs1 = conntemp.Execute(SqlStr1) Session(\"NumOfRecs\") = Rs1(\"TotalCount\") Rs1.Close Set Rs1 = Nothing SqlStr = \"SELECT * FROM categories;\" Set rs = conntemp.Execute(SqlStr) rs.MoveFirst While Trim(Session(\"categoryID\")) <> Trim(CStr(rs(\"categoryID\"))) Session(\"CurRec\") = Session(\"CurRec\") + 1 rs.MoveNext Wend End Select
If cmd <> \"New\" And cmd<>\"Copy\" Then Session(\"categoryID\") = server.Urlencode(rs(\"categoryID\")) Session(\"catdescription\") = FixDbField(rs(\"catdescription\")) rs.Close Set rs = Nothing End if If cmd=\"New\" Then Session(\"categoryID\") = \"\" Session(\"catdescription\") = \"\" End If conntemp.Close Set conntemp = Nothing %>
og den linie der giver fejl er : Session(\"categoryID\") = server.Urlencode(rs(\"categoryID\"))
nå ja koden blev: Case \"Del\" Set Conn = Server.CreateObject(\"ADODB.Connection\") Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"admin/scart.mdb\") SQL1 = \"SELECT * FROM products WHERE ccategory=\" & Session(\"categoryID\") & \";\" Set rs = Conn.Execute(SQL1)
If Not (rs.EOF or rs.BOF) Then Response.Write \"kan ikke slette dennne kategori, da den indgår i en varelinie ! \"
cmd=\"slet2\"
%>
<BR>
<% Else strSQL = \"DELETE FROM categories WHERE categoryID=\"+ Session(\"categoryID\")+ \";\" conntemp.Execute(strSQL) conntemp.Close Set conntemp = Nothing
response.redirect \"kategoriform.asp\" End If
Case \"Fromlist\" Session(\"CurRec\") = 1 SqlStr1 = \"SELECT Count(categoryID) As TotalCount From categories;\" Set Rs1 = conntemp.Execute(SqlStr1) Session(\"NumOfRecs\") = Rs1(\"TotalCount\") Rs1.Close Set Rs1 = Nothing SqlStr = \"SELECT * FROM categories;\" Set rs = conntemp.Execute(SqlStr) rs.MoveFirst While Trim(Session(\"categoryID\")) <> Trim(CStr(rs(\"categoryID\"))) Session(\"CurRec\") = Session(\"CurRec\") + 1 rs.MoveNext Wend End Select
If cmd <> \"New\" And cmd<>\"Copy\" And cmd<>\"slet2\" Then Session(\"categoryID\") = server.Urlencode(rs(\"categoryID\")) Session(\"catdescription\") = FixDbField(rs(\"catdescription\")) rs.Close Set rs = Nothing End if If cmd=\"New\" Then Session(\"categoryID\") = \"\" Session(\"catdescription\") = \"\" End If conntemp.Close Set conntemp = Not
nej det er under If cmd <> \"New\" And cmd<>\"Copy\" And cmd<>\"slet2\" Then Session(\"categoryID\") = server.Urlencode(rs(\"categoryID\")) Session(\"catdescription\") = FixDbField(rs(\"catdescription\")) rs.Close Set rs = Nothing End if If cmd=\"New\" Then Session(\"categoryID\") = \"\" Session(\"catdescription\") = \"\" End If conntemp.Close Set conntemp = Not
her har jeg tilføjet And cmd<>\"slet2\" og skrevet cmd=\"slet2\" under case \"del\"
jeg kan ikke lige sige hvorfor det virker men det gør det ?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.