Avatar billede Slettet bruger
26. november 2006 - 14:48 Der er 12 kommentarer og
1 løsning

On error forsæt scriptet ?

Hey eksperter..

Jeg har en lykke som slette en række filer. Filnavnene ligger et et recordset (rs):
----------------------------------
Do while not rs.EOF

Set fso = Server.CreateObject("Scripting.FilesystemObject")
set slet = fso.getfile(server.mappath("scooterbilleder/" & rs("Billednavn") & ""))
slet.delete

Set slet= Nothing
Set fso = Nothing
rs.movenext  <-----line 46:

-------------------------------

Problemet er nu at der er nogle af billerne som ikke findes, så jeg får fejlen:

Microsoft VBScript runtime error '800a0035'

File not found

/Sletbilleder1Config.asp, line 36


Nu skal jeg så bare have en linie sat ind i min lykke som siger: "On error '800a0035'goto line 46" MEN hvordan ?
Avatar billede softspot Forsker
26. november 2006 - 14:58 #1
Hvad med at kontrollere om filen eksisterer i stedet for at fejlhåndtere.

Jeg skulle mene at du kan benytte:

if fso.FileExists(server.mappath("scooterbilleder/" & rs("Billednavn"))) then
  ' slet filen
end if
Avatar billede softspot Forsker
26. november 2006 - 15:00 #2
Og så er det ikke nødvendigt at oprette og nedlægge FSO for hver iteration. Opret i stedet FSO inden do while løkken starter (og som en konsekvens deraf, nedlæg den efter dit loop-statement).
Avatar billede Slettet bruger
26. november 2006 - 16:52 #3
Do while not rs.EOF

if fso.FileExists(server.mappath("scooterbilleder/" & rs("Billednavn"))) then <--- 30

Set fso = Server.CreateObject("Scripting.FilesystemObject")
set slet = fso.getfile(server.mappath("scooterbilleder/" & rs("Billednavn") & ""))
slet.delete

Set slet= Nothing
Set fso = Nothing

)

end if

rs.movenext

Loop

-------------------------

Microsoft VBScript runtime error '800a01a8'

Object required: ''

/Sletbilleder1Config.asp, line 30
Avatar billede softspot Forsker
26. november 2006 - 17:06 #4
Du kan jo ikke bruge fso inden du har oprettet det... :|

Gør sådan her i stedet:

Set fso = Server.CreateObject("Scripting.FilesystemObject")

Do while not rs.EOF
  filespec = server.mappath("scooterbilleder/" & rs("Billednavn"))
  if fso.FileExists(filespec) then
    fso.DeleteFile filespec
  end if

  rs.movenext
Loop

Set fso = Nothing
Avatar billede Slettet bruger
26. november 2006 - 22:33 #5
skal filespec ikke i parantes ved DeleteFile ?
Avatar billede Slettet bruger
26. november 2006 - 22:36 #6
Nu skriver den:

[MySQL][ODBC 3.51 Driver][mysqld-5.0.26-community-nt]Unknown column 'PICT0107.JPG' in 'where clause'

Men kan bare ikke se hvad det "Unknown column" skulle være i PICT0107.JPG?
Avatar billede softspot Forsker
26. november 2006 - 22:49 #7
26/11-2006 22:33:50 >> Nej, for i VBS må man ikke kalde funktioner og subs med parantes med mindre man, for funktioner, tildeler returværdien til en variabel eller bruger den i en expression eller, for subs, foranstiller kaldet med call. Dog kan paranteser alligevel tillades hvis der kun er en parameter (da en parameter også kan være et udtryk, hvilket paranteserne vil gøre ved parameteren.

Eksemplificeret:
call fso.DeleteFile(filespec)  ' OK
fso.DeleteFile(filespec)  ' OK
fso.DeleteFile(filespec, true)  ' IKKE OK
call fso.DeleteFile(filespec, true) ' OK

Derfor synes jeg det er bedst at være konsekvent og undlade at omstille parametre med parantes - eller altid foranstille funktionskald (og subs), der ikke benytter returværdien, med call.

26/11-2006 22:36:10 >> Det har ikke umiddelbart noget med den anden kode at gøre, så der er du nok nød til at vise hvordan du sammensætter din SQL-sætning. Det ser ud til at du får lagt indholdet af et felt ind i din SQL-sætning i stedet for feltnavnet...
Avatar billede ldanielsen Nybegynder
27. november 2006 - 12:22 #8
Du har nok bare klemt at sætte ' omkring filnavnet i di SQL
Avatar billede ldanielsen Nybegynder
27. november 2006 - 12:22 #9
glemt :o)
Avatar billede Slettet bruger
17. juli 2007 - 17:28 #10
Ingen svar???
Avatar billede softspot Forsker
17. juli 2007 - 17:31 #11
Du har ikke bedt om et svar endnu :)
Avatar billede Slettet bruger
21. juli 2007 - 12:32 #12
Okay min fejl :)
Avatar billede softspot Forsker
21. juli 2007 - 15:09 #13
Tak for point :)
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