Avatar billede hjemmeskoen Nybegynder
16. november 2005 - 21:48 Der er 18 kommentarer og
1 løsning

Fejl ved at trække fra..

Hejsa..
Jeg har lavet et mappe system på min hjemmeside men er stødt ind i problemer.
Jeg skal ha' gjort sådan at når man vil slette en fil så finder den ud af hvor meget filen har fyldt og trækker det fra mappens totale størelse men når jeg prøver at trække det fra får jeg fejl.

Det stykke kode jeg har forsøgt med ser sådan ud:

If request.querystring("Side") = "Slet" then

Id = Request.Querystring("Id")
Navn = Request.Querystring("Navn")

Call OpenDataBase

Set objRS = objConn.Execute("Select * From Files Where Filnavn = '" & Navn & "' AND Brugernavn = '" & Session("Brugernavn") & "'")

Mappe = objRS("Mappe")
FileSize = objRS("FileSize")

Set objRS = objConn.Execute("Select * From Mapper Where Navn = '" & Navn & "' AND Brugernavn = '" & Session("Brugernavn") & "'")

TotalSize = objRS("TotalSize") - FileSize

strSQL = "Update Mapper Set"
strSQL = strSQL & " TotalSize = " & TotalSize & ""
strSQL = strSQL & " Where Navn = '" & Navn & "' AND Brugernavn = '" & Session("Brugernavn") & "'"
objConn.Execute(strSQL)

strSQL = "Delete * From Files Where Id = " & Id & ""
objConn.Execute (strSQL)

Call CloseDataBase

Set Upload = Server.CreateObject("Scripting.FileSystemObject")
If (Upload.FileExists(Server.MapPath("/Filer/" & Navn)) = True) Then
Upload.DeleteFile(Server.MapPath("/Filer/" & Navn))
End If
Set Upload = Nothing

Response.Redirect("?Side=Meddelse&Hvad=Slettet&Meddelse=Du har nu slettet " & Server.HtmlEncode(Navn) & "..")

End if


Den fejl jeg får ser således ud:

error '80020009'
/Brugersystem/Mapper.asp, line 409


Er der nogle der kan fortælle mig hvorfor det er jeg får denne fejl?
Avatar billede thesurfer Nybegynder
16. november 2005 - 21:53 #1
Prøv med:

TotalSize = CDbl(objRS("TotalSize")) - CDbl(FileSize)

Altså, at konvertere værdierne til Double..

/theSurfer
Avatar billede thesurfer Nybegynder
16. november 2005 - 21:54 #2
Det kan også være, at den ikke tillader at man bruger objRS("TotalSize") på den måde..

Så kan du prøve:

dim tSize
tSize = objRS("TotalSize")
TotalSize = CDbl(tSize) - CDbl(FileSize)

/theSurfer
Avatar billede thesurfer Nybegynder
16. november 2005 - 21:55 #3
Du kan finde funktionerne her: http://www.w3schools.com/vbscript/vbscript_ref_functions.asp

/theSurfer
Avatar billede hjemmeskoen Nybegynder
16. november 2005 - 22:00 #4
Intet virker..
Heller ikke selvom jeg kalder den noget andet..
Avatar billede thesurfer Nybegynder
16. november 2005 - 22:02 #5
1) Var der ikke mere end det her, i fejlmeddelelsen?:

error '80020009'
/Brugersystem/Mapper.asp, line 409

2) Hvilken linie er linie 409?

/theSurfer
Avatar billede hjemmeskoen Nybegynder
16. november 2005 - 22:03 #6
Niks der er ikke mere..
Og linie 409 er: TotalSize = objRS("TotalSize") - FileSize
Avatar billede thesurfer Nybegynder
16. november 2005 - 22:08 #7
Ang fejlkoden 80020009: http://support.microsoft.com/kb/q175239/

Indholdet af objRS("TotalSize") er muligvis ikke et tal.. men data..

prøv det her:

response.write "*" & objRS("TotalSize") & "*"
response.end ' afslut udskrift

Hvis stør der så på skærmen?
Hvis der bare står "**", indeholder objRS("TotalSize") ingenting..

/theSurfer
Avatar billede hjemmeskoen Nybegynder
17. november 2005 - 08:02 #8
Det er et talfelt - Kan det ha' noget med det at gøre?
Avatar billede thesurfer Nybegynder
18. november 2005 - 01:02 #9
Det burde ikke have noget at sige..
Man skal helst ikke bruger reference til et felt i databaser, flere gange..
Smid indholdet over i en variabel, og arbejd med variablen i stedet for..

Hvad får du, hvis du gennemfører min test (16/11-2005 22:08:38)?

/theSurfer
Avatar billede hjemmeskoen Nybegynder
18. november 2005 - 07:26 #10
Jeps og der skriver den *8*..
Så TotalSize er ikke tom..
Avatar billede thesurfer Nybegynder
18. november 2005 - 12:25 #11
hmm.. Jeg har lige lagt mærke til, at du bruger objRS til 2 sql sætninger..

Hvor har du indstat "**"-testen henne?


Prøv det her:

Set objRS = objConn.Execute("Select * From Files Where Filnavn = '" & Navn & "' AND Brugernavn = '" & Session("Brugernavn") & "'")

Mappe = objRS("Mappe")
FileSize = objRS("FileSize")
response.write "objRS_FileSize: *" & objRS("FileSize") & "*<br>" ' --- jeg her tilføjet denne linie

Set objRS = objConn.Execute("Select * From Mapper Where Navn = '" & Navn & "' AND Brugernavn = '" & Session("Brugernavn") & "'")

response.write "objRS_FileSize: *" & objRS("FileSize") & "*<br>" ' --- jeg her tilføjet denne linie

response.write "objRS_TotalSize: *" & objRS("FileSize") & "*<br>" ' --- jeg her tilføjet denne linie

response.end  ' --- jeg her tilføjet denne linie

TotalSize = objRS("TotalSize") - FileSize

Hvordan ser output'et/udskriften/resultatet ud?



Og Husk:
Du må ALDRIG bruge direkte input fra brugeren!! Så kan din database hackes via SQL Injection!

Derfor (erstat din tilsvarende kode, med disse linier):

Id = Replace(Request.Querystring("Id"), "'", "''")
Navn = Replace(Request.Querystring("Navn"), "'", "''")

Det erstatter 1x '-tegn med 2x '-tegn, som opfattes som kun 1x '-tegn. Ellers kan man ændre på dine SQL strenge.

/theSurfer
Avatar billede hjemmeskoen Nybegynder
18. november 2005 - 17:54 #12
1 Response.Write (Altså: response.write "objRS_FileSize: *" & objRS("FileSize") & "*<br>") Skriver: objRS_FileSize: *4*

2 Response.Write (Altså: response.write "objRS_FileSize: *" & objRS("FileSize") & "*<br>") Skriver:

ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/Brugersystem/Mapper.asp, line 410


(Hvilket er meget forståeligt eftersom dne ikke eksisterer med bare er en variabel)

3 Response.Write (Altså: response.write "objRS_TotalSize: *" & objRS("FileSize") & "*<br>") Skriver:

ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/Brugersystem/Mapper.asp, line 410


(Hvilket også er meget forståeligt eftersom objRS("FileSize") stadig ikke eksisterer i tabellen Mapper..)


Hvis jeg derimod skifter denne linie:

response.write "objRS_FileSize: *" & objRS("FileSize") & "*<br>" ' --- jeg her tilføjet denne linie

Ud med:

response.write "objRS_FileSize: *" & FileSize & "*<br>" ' --- jeg her tilføjet denne linie

Skriver den:

objRS_FileSize: *4*


Det samme med:
response.write "objRS_TotalSize: *" & objRS("FileSize") & "*<br>" ' --- jeg her tilføjet denne linie

Hvis jeg skifter den ud med:
response.write "objRS_TotalSize: *" & objRS("TotalSize") & "*<br>" ' --- jeg her tilføjet denne linie

Skriver den:
error '80020009'
/Brugersystem/Mapper.asp, line 410


Så det er nok der vi har problemet..
Avatar billede hjemmeskoen Nybegynder
18. november 2005 - 18:26 #13
Og det hjælper ikke lige meget om jeg ændre TotalSize til noget andet..
Avatar billede thesurfer Nybegynder
18. november 2005 - 19:46 #14
Jeg lavede en Copy&Paste-fejl.. der skal stå objRS("FileSize") og objRS("TotalSize").. ikke 2x objRS("FileSize"):

response.write "objRS_FileSize: *" & objRS("FileSize") & "*<br>" ' --- jeg her tilføjet denne linie

response.write "objRS_TotalSize: *" & objRS("FileSize") & "*<br>" ' --- jeg her tilføjet denne linie


Check lige, om felterne passer med de forskellige tabeller..

/theSurfer
Avatar billede hjemmeskoen Nybegynder
18. november 2005 - 19:54 #15
Læs lige mit indlæg d. 18/11-2005 17:54:36
Avatar billede thesurfer Nybegynder
18. november 2005 - 22:21 #16
hmm.. hvilke typer og data'er er der i dine felter?
- Det kan godt være, at jeg først svarer igen, i morgen..

/theSurfer
Avatar billede hjemmeskoen Nybegynder
18. november 2005 - 22:45 #17
I tabellen Files:
Id - Autonr.
Filnavn - Tekst
FileSize - Tal
Brugernavn - Tekst
IP - Tekst
Uploadet - Tekst
Mappe - Tekst

I tabellen Mapper:
Id - Autonr.
Navn - Tekst
Totalt - Tal (Den er ændret så jeg kunne se om TotalSize bragte fejl)
Oprettet Tekst
IP - Tekst
Brugernavn - Tekst
Avatar billede thesurfer Nybegynder
22. november 2005 - 23:34 #18
Jeg må indrømme, at jeg ikke har fået kigget på det. Jeg kan ikke umiddelbart se hvad problemet er..

Du er velkommen til at lade spørsmålet stå åbent, så andre kan kome med forslag..

/theSurfer
Avatar billede hjemmeskoen Nybegynder
18. februar 2006 - 18:08 #19
..
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