Avatar billede 0ffline Nybegynder
13. marts 2004 - 11:08 Der er 35 kommentarer og
1 løsning

Slet folder med indhold samt recordset i access

Øv

Endnu engang er jeg løbet panden mod muren

Jeg vil gerne lave en sletfunktion, så jeg kan slette ikke aktuelle annoncer. Dette virker fint med:

Set rs = Server.CreateObject("ADODB.RecordSet")

strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/angelica.mdb")

rs.Open "annonce", strDSN, adOpenDynamic, adLockOptimistic, adCmdTable

rs.find "id=" & request.querystring("id")

rs.delete

rs.close
set rs = Nothing

response.redirect("admin.asp")
%>

Men da jeg indskrev annoncen, oprettede jeg også en folder på serveren som hedder rs("emne") hvori den smed 4 billeder.
Denne mappe vil jeg jo også gerne have slette i samme nu. Kan det lade sig gøre ? Hvordan ?

/0ffline
Avatar billede ellebaek Nybegynder
13. marts 2004 - 11:13 #1
<%
itemName = rs("emne")
Set FSO = server.CreateObject("Scripting.FileSystemObject")

FSO.DeleteFolder itemName, true
If (err.Number <> 0 ) Then
  response.write "Unable to delete the folder """ & itemName & """, an error occured..."
  Else
    response.write "Deleted the folder """ & itemName & """..."
End If
%>

Sådan her vil jeg tro...
Avatar billede ellebaek Nybegynder
13. marts 2004 - 11:14 #2
altså samlet skal det se ud som:

Set rs = Server.CreateObject("ADODB.RecordSet")

strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/angelica.mdb")

rs.Open "annonce", strDSN, adOpenDynamic, adLockOptimistic, adCmdTable

rs.find "id=" & request.querystring("id")

itemName = rs("emne")
Set FSO = server.CreateObject("Scripting.FileSystemObject")

FSO.DeleteFolder itemName, true
If (err.Number <> 0 ) Then
  response.write "Unable to delete the folder """ & itemName & """, an error occured..."
  Else
    response.write "Deleted the folder """ & itemName & """..."
End If


rs.delete

rs.close
set rs = Nothing

response.redirect("admin.asp")
%>
Avatar billede 0ffline Nybegynder
13. marts 2004 - 11:27 #3
Den kan ikke finde stien til mappen med billerne.
Selve mappen ligger som en undermappe til 'billeder'
Jeg har prøvet således, men det virker desværre ikke
itemName = "billeder/" & rs("emne")
Avatar billede ellebaek Nybegynder
13. marts 2004 - 11:28 #4
hvilken fejl får du ?
Avatar billede 0ffline Nybegynder
13. marts 2004 - 11:30 #5
Path not found

/toons/deleteaddz.asp, line 16
Avatar billede ellebaek Nybegynder
13. marts 2004 - 11:31 #6
nevermind tror jeg...

Fejlen er at der mangler en server.mappath ;-)
Har det med at glemme den...

<%
Set rs = Server.CreateObject("ADODB.RecordSet")

strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/angelica.mdb")

rs.Open "annonce", strDSN, adOpenDynamic, adLockOptimistic, adCmdTable

rs.find "id=" & request.querystring("id")

itemName = server.mappath("billeder/" & rs("emne"))
Set FSO = server.CreateObject("Scripting.FileSystemObject")

FSO.DeleteFolder itemName, true
If (err.Number <> 0 ) Then
  response.write "Unable to delete the folder """ & itemName & """, an error occured..."
  Else
    response.write "Deleted the folder """ & itemName & """..."
End If


rs.delete

rs.close
set rs = Nothing

response.redirect("admin.asp")
%>
Avatar billede 0ffline Nybegynder
13. marts 2004 - 11:36 #7
Bedre :O)
Men nu får jeg fejlmelding...
Permission denied

Regner med det er fordi jeg prøver at slette en mappe med indhold.
Avatar billede ellebaek Nybegynder
13. marts 2004 - 11:37 #8
Det burde true klare for dig...

Øjeblik..
Avatar billede 0ffline Nybegynder
13. marts 2004 - 11:37 #9
Indholdet hedder forresten altid:
foto1.jpg
foto2.jpg
foto3.jpg
foto4.jpg
Er det muligt at slette dem først?
Avatar billede ellebaek Nybegynder
13. marts 2004 - 11:39 #10
fandt et sted hvor de foreslog at man skulle skrive Force:=True i stedet...
Så prøv det her:<%
Set rs = Server.CreateObject("ADODB.RecordSet")

strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/angelica.mdb")

rs.Open "annonce", strDSN, adOpenDynamic, adLockOptimistic, adCmdTable

rs.find "id=" & request.querystring("id")

itemName = server.mappath("billeder/" & rs("emne"))
Set FSO = server.CreateObject("Scripting.FileSystemObject")

FSO.DeleteFolder itemName, Force:=True
If (err.Number <> 0 ) Then
  response.write "Unable to delete the folder """ & itemName & """, an error occured..."
  Else
    response.write "Deleted the folder """ & itemName & """..."
End If


rs.delete

rs.close
set rs = Nothing

response.redirect("admin.asp")
%>
Avatar billede 0ffline Nybegynder
13. marts 2004 - 11:43 #11
Den kan ikke godtage : i Force: <--
Men hvis jeg fjerner den får jeg igen
Permission denied
Avatar billede ellebaek Nybegynder
13. marts 2004 - 11:51 #12
FSO.DeleteFolder itemName, True

det var lige mig der lavede en fejl..
Dette burde virke, har du rettigheder til at slette mapper på din server ?
du skal have read, write og execute skulle jeg mene.
Avatar billede 0ffline Nybegynder
13. marts 2004 - 11:53 #13
Der er givet alle rettigheder. Jeg prøver lige
Avatar billede ellebaek Nybegynder
13. marts 2004 - 11:55 #14
<%
Set rs = Server.CreateObject("ADODB.RecordSet")

strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/angelica.mdb")

rs.Open "annonce", strDSN, adOpenDynamic, adLockOptimistic, adCmdTable

rs.find "id=" & request.querystring("id")

itemName = server.mappath("billeder/" & rs("emne"))
Set FSO = server.CreateObject("Scripting.FileSystemObject")

if FSO.FolderExists itemName then
  FSO.DeleteFolder itemName, True
End If


rs.delete

rs.close
set rs = Nothing

response.redirect("admin.asp")
%>

Ellers prøv denne..
Avatar billede 0ffline Nybegynder
13. marts 2004 - 11:59 #15
Den første virker ikke, men den er vel også magen til det du postede
13/03-2004 11:31:08
Den nye melder...
if FSO.FolderExists itemName then
--------------------^
Avatar billede 0ffline Nybegynder
13. marts 2004 - 12:00 #16
med pil under itemName
Avatar billede ellebaek Nybegynder
13. marts 2004 - 12:02 #17
hvad er hele fejlen ?
Avatar billede 0ffline Nybegynder
13. marts 2004 - 12:05 #18
Således ser hele deletesiden ud...
<!-- #include file="ADOVBS.inc" -->
<%

Set rs = Server.CreateObject("ADODB.RecordSet")

strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/angelica.mdb")

rs.Open "annonce", strDSN, adOpenDynamic, adLockOptimistic, adCmdTable

rs.find "id=" & request.querystring("id")

itemName = server.mappath("billeder/" & rs("emne"))
Set FSO = server.CreateObject("Scripting.FileSystemObject")

if FSO.FolderExists itemName then
  FSO.DeleteFolder itemName, True
End If


rs.delete

rs.close
set rs = Nothing

response.redirect("admin.asp")
%>

Fejlmeddelsen ...

Microsoft VBScript compilation error '800a03f9'

Expected 'Then'

/toons/deleteaddz.asp, line 15

if FSO.FolderExists itemName then
--------------------^
Avatar billede ellebaek Nybegynder
13. marts 2004 - 12:07 #19
nå ja.. parenteser er en god ting ;-)

if FSO.FolderExists(itemName) then
  FSO.DeleteFolder itemName, True
End If
Avatar billede 0ffline Nybegynder
13. marts 2004 - 12:09 #20
Jeg nænner næsten ikke at skrive:
Microsoft VBScript runtime error '800a0046'

Permission denied

/toons/deleteaddz.asp, line 16
Avatar billede ellebaek Nybegynder
13. marts 2004 - 12:10 #21
så er det noget med skriverettigheder...

prøv at teste scriptet på en tom folder, så kan vi altid se om det er det der er problemet.
Avatar billede 0ffline Nybegynder
13. marts 2004 - 12:14 #22
Det hjalp desværre ikke med en tom folder.
Og skriverettighederne skulle ikke være problemet, da der er åbnet op for alt og alle
Avatar billede ellebaek Nybegynder
13. marts 2004 - 12:21 #23
det tror jeg nu alligevel det er...

Men ellers så prøv at slette true og prøv igen
Avatar billede 0ffline Nybegynder
13. marts 2004 - 12:25 #24
Nope, desværre stadig det samme.
Ang. skriverettighederne ---> http://www.angelica.dk/screen.jpg
Regner med at det er korrekt
Avatar billede ellebaek Nybegynder
13. marts 2004 - 12:42 #25
tja, men virker deleteFile..

det tester vi lige...
lav en tilfældig fil med fx. navn 123.txt

og så eksekver dette script..
itemName = server.mappath("billeder/123.txt")
Set FSO = server.CreateObject("Scripting.FileSystemObject")

if FSO.FileExists itemName then
  FSO.DeleteFile itemName
End If
Avatar billede ellebaek Nybegynder
13. marts 2004 - 12:46 #26
hvis deleteFile virker, så skal vi lige teste noget andet...

så skal du prøve dette script i stedet.

<%
Set rs = Server.CreateObject("ADODB.RecordSet")

strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/angelica.mdb")

rs.Open "annonce", strDSN, adOpenDynamic, adLockOptimistic, adCmdTable

rs.find "id=" & request.querystring("id")

itemName = server.mappath("billeder/" & rs("emne"))
response.write itemName
response.end

Set FSO = server.CreateObject("Scripting.FileSystemObject")

if FSO.FolderExists itemName then
  FSO.DeleteFolder itemName, True
End If

rs.delete

rs.close
set rs = Nothing

response.redirect("admin.asp")
%>
Avatar billede 0ffline Nybegynder
13. marts 2004 - 12:50 #27
Hmmm ... det giver det samme problem.
Mærkeligt at den ikke vil slette
Avatar billede ellebaek Nybegynder
13. marts 2004 - 12:53 #28
du skal få din udbyder til at give brugeren read write og execute adgang...
Der er vidst forskel på at have det på ftp-serveren og på selve serveren.

Men hvad skriver ovenstående ?
Avatar billede 0ffline Nybegynder
13. marts 2004 - 12:53 #29
Jeg har ingen problemer med at oprette, det burde vel være det samme?
Avatar billede 0ffline Nybegynder
13. marts 2004 - 12:55 #30
Permission denied

/toons/testdelete.asp, line 5
Avatar billede ellebaek Nybegynder
13. marts 2004 - 12:56 #31
var det resultatet af denne ?

<%
Set rs = Server.CreateObject("ADODB.RecordSet")

strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/angelica.mdb")

rs.Open "annonce", strDSN, adOpenDynamic, adLockOptimistic, adCmdTable

rs.find "id=" & request.querystring("id")

itemName = server.mappath("billeder/" & rs("emne"))
response.write itemName
response.end

Set FSO = server.CreateObject("Scripting.FileSystemObject")

if FSO.FolderExists itemName then
  FSO.DeleteFolder itemName, True
End If

rs.delete

rs.close
set rs = Nothing

response.redirect("admin.asp")
%>
Avatar billede 0ffline Nybegynder
13. marts 2004 - 12:57 #32
Sorry.. nej

D:\Webhotel\angelica.dk\www\toons\billeder\test1
Avatar billede ellebaek Nybegynder
13. marts 2004 - 12:58 #33
og det er som det skal være skulle man mene..

og du kunne ikke slette filer heller..

Jeg tror du skal kontakte din udbyder, og spørge hvordan det kan være, for ovenstående script skal slette alle mapper, men det har du ikke rettigheder til på serveren.
Avatar billede 0ffline Nybegynder
13. marts 2004 - 13:03 #34
Lyder som det rigtige.
Ked af alt det besvær du måtte igennem.
Smid et svar, for at modtage velfortjente points.
Rigtig god Weekend, og tusinde tak for hjælpen
Avatar billede ellebaek Nybegynder
13. marts 2004 - 14:06 #35
der er et svar her ;-)

Håber du får resten til at virke, ellers så sig til. Så kigger vi på det.
Avatar billede 0ffline Nybegynder
13. marts 2004 - 14:08 #36
Tak
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester