/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Problemer med at slette en fil
Fra : Lasse Vestergaard


Dato : 21-11-04 16:51

Jeg kan ikke finde ud af både at slette en fil i en db og fra en
mappe. Jeg har et midlertidigt script som ikke virker... Hjælp


slet.asp
*************

<head>
</head>
<BODY BGCOLOR="white">

<%
' Variables
' *********
Dim oConn
Dim objFSO
Dim ObjFile
Dim DefaultDir
Dim fil
Dim oRs

DefaultDir = Server.MapPath("Upload")
fil = request.Form("FILENAME")

' Object creation
' ***************

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set ObjFile = ObjFSO.deleteFile(DefaultDir & "fil") <---
LINIE 22
ObjFile.Close

set ObjFile = Nothing
set ObjFSO = Nothing
' Connect to the DB
' *****************
Set oConn = Server.CreateObject("ADODB.Connection")
curDir = Server.MapPath("test.mdb")
oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver
(*.mdb)};DriverId=25;FIL=MS Access;"

' Open a recordset
' ****************
strSQL = "select * from person"
Set oRs = Server.CreateObject("ADODB.recordset")
Set oRs.ActiveConnection = oConn
oRs.Source = strSQL
oRs.LockType = 3
oRs.Open

' delete the current file from a DB field
' **********************************
oRs.delete
ors("username") = request.Form("username")
oRs("FILENAME") = request.Form("FILENAME")
oRs.Update


' Destruction
' ***********
oRs.Close
oConn.Close
Set oRs = Nothing
Set oConn = Nothing
%>

</BODY>
</HTML>
*************************'


Jeg får fejlen:

Microsoft VBScript runtime error '800a0035'

File not found

/slet.asp, line 22

Jeg håber nogen kan hjælpe

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Thomas Bøjstrup Joha~ (21-11-2004)
Kommentar
Fra : Thomas Bøjstrup Joha~


Dato : 21-11-04 18:26


> Set objFSO = CreateObject("Scripting.FileSystemObject")
> Set ObjFile = ObjFSO.deleteFile(DefaultDir & "fil")
> ObjFile.Close

hvis du tilføjre et par liner, så det bliver som

On Error Resume Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set ObjFile = ObjFSO.deleteFile(DefaultDir & "fil")
Response.write "Err: " Err.number & " " & Err.Description
ObjFile.Close


hvad fortæller den dig så fejlen er ???




--

Mvh
Thomas Bøjstrup Johansen

--------------------------------------------------------------------
www.swug.dk - Sjælland Windows User Group



Thomas Bøjstrup Joha~ (21-11-2004)
Kommentar
Fra : Thomas Bøjstrup Joha~


Dato : 21-11-04 18:29

> hvad fortæller den dig så fejlen er ???

jaja jeg overså lige det siste


>Jeg får fejlen:
>
>Microsoft VBScript runtime error '800a0035'
>File not found
>
>/slet.asp, line 22


men et gæt ville være at du skal lave denne line

Set ObjFile = ObjFSO.deleteFile(DefaultDir & "fil")

om til

Set ObjFile = ObjFSO.deleteFile(DefaultDir & "\" & "fil")





--

Mvh
Thomas Bøjstrup Johansen

--------------------------------------------------------------------
www.swug.dk - Sjælland Windows User Group



Jens Gyldenkærne Cla~ (21-11-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 21-11-04 22:05

Thomas Bøjstrup Johansen skrev:

> Set ObjFile = ObjFSO.deleteFile(DefaultDir & "fil")
>
> om til
>
> Set ObjFile = ObjFSO.deleteFile(DefaultDir & "\" & "fil")

- måske, men det vil næppe fjerne alle fejl.

For det første er det der skal slettes nok ikke filen "fil", men i
stedet filen med det navn der er lagt i variablen fil (fil =
Request.Form("FILENAME"))

For det andet returnerer ObjFSO.deleteFile ikke en filreference -
hvis man sletter en fil, har man ikke noget at bruge en reference
til.

Prøv at rette linje 22 til:

   ObjFSO.deleteFile(DefaultDir & "\" & fil)

- og slet så linje 23 (ObjFile.close).
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Lasse Vestergaard (21-11-2004)
Kommentar
Fra : Lasse Vestergaard


Dato : 21-11-04 22:19

Jens GyldenkærneClausen skrev:

> Prøv at rette linje 22 til:
>
>    ObjFSO.deleteFile(DefaultDir & "\" & fil)
>
> - og slet så linje 23 (ObjFile.close).

Jeg har nu ændret ovenstående linier. Det ser ud til problemet nu er
rykket videre til DB delen

Jeg får nu fejlen:

Microsoft OLE DB Provider for ODBC Drivers error '80040e23'

Row handle referred to a deleted row or a row marked for deletion.

/slet.asp, line 44


Jeg har kigget på det, men kan ikke finde nogen egentlig fejl...
Måske har jeg bare stirret mig blind

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (21-11-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 21-11-04 23:20

Lasse Vestergaard skrev:

> Jeg har nu ændret ovenstående linier. Det ser ud til problemet
> nu er rykket videre til DB delen

Det er nok nærmere bare et nyt problem.


> Row handle referred to a deleted row or a row marked for
> deletion.
>
> /slet.asp, line 44

Hvilken linje er nr. 44?

Hvis det er et databasekald, er det en god ide at udskrive sql-
koden - se hvordan her: <http://asp-faq.dk/article/?id=41>.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Lasse Vestergaard (23-11-2004)
Kommentar
Fra : Lasse Vestergaard


Dato : 23-11-04 16:25

Jens GyldenkærneClausen wrote:

> Hvilken linje er nr. 44?


JEg sender lige stykket af min kode hvor DB'en indgår:
*************************************'************
Set oConn = Server.CreateObject("ADODB.Connection")
curDir = Server.MapPath("test.mdb")
oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver
(*.mdb)};DriverId=25;FIL=MS Access;"

' Open a recordset
' ****************
strSQL = "select * from person"
Set oRs = Server.CreateObject("ADODB.recordset")
Set oRs.ActiveConnection = oConn
oRs.Source = strSQL
oRs.LockType = 3
oRs.Open

' delete the current file from a DB field
' **********************************
oRs.delete
ors("username") = request.Form("username") <----- LINIE 44
oRs("FILENAME") = request.Form("FILENAME")
oRs.Update


' Destruction
' ***********
oRs.Close
oConn.Close
Set oRs = Nothing
Set oConn = Nothing

****************************'

Og fejlen er stadig:

Microsoft OLE DB Provider for ODBC Drivers error '80040e23'

Row handle referred to a deleted row or a row marked for
deletion.

/slet.asp, line 44



Håber i kan hjælpe!

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (23-11-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 23-11-04 21:26

Lasse Vestergaard skrev:

> ' Open a recordset
> ' ****************
> strSQL = "select * from person"

Her henter du alle felter og alle poster fra persontabellen - det
er ikke hensigtsmæssigt hvis du bare skal arbejde med en enkelt
post.


> ' delete the current file from a DB field
> ' **********************************
> oRs.delete

Linjen herover sletter den første post i dit postsæt. Det er
temmelig sikkert ikke det du er ude efter.

Hvis du bare vil "blanke" et felt, kan du skrive:

   ors("filnavn") = Null

- eller evt.

   ors("filnavn") = ""

Hvis du vil have filnavnet ud (så du kan slette det i filsystemet),
skal du lægge det over i en variabel:

Dim filnavn
filnavn = ors("filnavn")

(begge eksempler herover forudsætter at du har et tekstfelt kaldet
"filnavn" i din tabel).


> ors("username") = request.Form("username") <----- LINIE 44
> oRs("FILENAME") = request.Form("FILENAME")

Det går galt her fordi du lige har slettet den aktuelle post. Hvis
du vil indsætte en ny post, bør du kigge på INSERT-sætningen i sql
(se fx <http://html.dk/tutorials/asp/lektion20.asp>)
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177548
Tips : 31968
Nyheder : 719565
Indlæg : 6408803
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste