Avatar billede fun22 Nybegynder
11. december 2002 - 20:15 Der er 32 kommentarer og
1 løsning

Hvad er der galt med denne kode?

strSQL = "INSERT INTO " & Request.Querystring("kat") & " WHERE bruger = " & Request.Form("bruger") & " (billede) VALUES('" & strFileName & "')"
Avatar billede erikjacobsen Ekspert
11. december 2002 - 20:20 #1
Mener du ikke du vil lave en

  update entabel set billede='etfilnavn' where bruger=7913

??
Avatar billede burningice Nybegynder
11. december 2002 - 21:00 #2
tja.. enten det, eller også skal where ikke være det...

strTabel = Request.Querystring("kat")
strSQL = "INSERT INTO "& strTabel &" (billede) VALUES ('"& strFileName &"')"
Avatar billede hossein Nybegynder
11. december 2002 - 21:37 #3
insert sætning acceptere ikke where, det skal være uden where.
Avatar billede ramnir Nybegynder
12. december 2002 - 11:18 #4
Jeps det er som der skriver:

Insert (ny record i databasen):
strSQL = "INSERT INTO " & Request.Querystring("kat") & " (billede) VALUES('" & strFileName & "')"

Update (redigering af eksisterende record i databasen):
strSQL = "UPDATE " & Request.Querystring("kat") & " SET billede = '" & strFileName & "' WHERE bruger = " & Request.Form("bruger")

/ramnir
Avatar billede fun22 Nybegynder
12. december 2002 - 12:43 #5
Den kommer med denne fejl:

Cannot use Request.Form collection after calling BinaryRead.

Når jeg bruger raimers eksempel
Avatar billede ramnir Nybegynder
12. december 2002 - 13:42 #6
Nu ved jeg ikke hvilket eksempel du bruger (insert/update), men kan du ikke lave et Response.Write strSQL inden de forsøger at eksekvere det, så jeg kan se hvordan SQL statementet ser ud.

/ramnir
Avatar billede fun22 Nybegynder
12. december 2002 - 14:01 #7
Jeg bruger opdate eksemplet

Jeg kan ikke komme til at skrive ud da det er i sql linien fejlen ligger.

denne fejl:

Request object error 'ASP 0207 : 80004005'

Cannot use Request.Form

/carsandguns/upload.asp, line 47

Cannot use Request.Form collection after calling BinaryRead.
Avatar billede burningice Nybegynder
12. december 2002 - 14:08 #8
fun22>> det er fordi, som der så fint står... at du ikke kan bruge request.form efter BinaryRead... jeg ved godt at man aldrig skal stole på det microsoft skriver, men nogen gange kan det altså spare en for noget bøvl

Løsning: skriv din kode om
Avatar billede fun22 Nybegynder
12. december 2002 - 14:18 #9
ok det kan du sagtens sige men hvad betyder BinaryRead??
Avatar billede webbe Nybegynder
12. december 2002 - 14:21 #10
Din form tag skal se således ud:

<form method="POST" action="minfil.asp" enctype="multipart/form-data"></form>

Hvis du så fx. bruger ASP.Upload skal du hente ved hjælp af:

Upload.Form("form_navn")
Avatar billede fun22 Nybegynder
12. december 2002 - 14:23 #11
der bliver ikke brugt noget komponent
Avatar billede ramnir Nybegynder
12. december 2002 - 14:23 #12
--BinaryRead--
The BinaryRead method is used to read the raw data sent by the client as part of a POST request. This method is used for low-level access to this data, as opposed to, for example, using the Request.Form collection to view form data sent in a POST request. Once you have called BinaryRead, referring to any variable in the Request.Form collection will cause an error. Conversely, once you have referred to a variable in the Request.Form collection, calling BinaryWrite will cause an error. Remember, if you access a variable in the Request collection without specifying which subcollection it belongs to, the Request.Form collection may be searched, bringing this rule into force.


Så på et eller andet tidspunkt før din Request.Form kalder du BinaryRead og det er som der står ovenfor ikke lovligt.

/ramnir
Avatar billede fun22 Nybegynder
12. december 2002 - 15:24 #13
nu får jeg en ny fejl:

No value given for one or more required parameters.
Avatar billede ramnir Nybegynder
12. december 2002 - 15:35 #14
Kan du ikke lave en:

On Error Resume Next
Response.Write strSQL
If Err.Number <> 0 Then
  Response.Write Err.Description
End If


Og så prøve at vise mig hvad den skriver (husk at sætte On Error Resume Next ind før du kalder databasen).

/ramnir
Avatar billede ramnir Nybegynder
12. december 2002 - 15:36 #15
aaarrgh glemte lige

On Error Resume Next
strSQL = ".........
Response.Write strSQL

DIT KALD TIL DATABASEN...

If Err.Number <> 0 Then
  Response.Write Err.Description
End If

/ramnir
Avatar billede fun22 Nybegynder
12. december 2002 - 16:05 #16
Så kommer der til at stå her:
No value given for one or more required parameters.
Avatar billede ramnir Nybegynder
12. december 2002 - 16:09 #17
men hvad med SQL statementet, skriver den ikke det ud?
Det er nok her der mangler et eller andet.

/ramnir
Avatar billede ramnir Nybegynder
12. december 2002 - 16:20 #18
Det kan også skyldes at fejlen ligger tidligere i scriptet.
Kommer der slet ikke et linienummer på fejlmeddelelsen?

/ramnir
Avatar billede fun22 Nybegynder
12. december 2002 - 18:07 #19
jo den siger der er fejl i denne linie:
Conn.Execute(strSQL)
Avatar billede fun22 Nybegynder
12. december 2002 - 18:07 #20
Her er hele koden:

<%@ Language="VBScript" %>


<!-- #INCLUDE FILE="fileupload.inc" -->

<HTML>
<HEAD>
<TITLE>Upload uden komponent</TITLE>
</HEAD>
<BODY>

<%
'*************************************
'**** Test af FileUpload funktion ****
'****                            ****
'**** Upload .gif eller .jpg      ****
'**** billede til mappen /upload  ****
'*************************************

    'Skal formen vises?
    If Request.ServerVariables("REQUEST_METHOD") <> "POST" Then
%>
<%
kat = Request.QueryString("kat")
%> 
<FORM ENCTYPE="multipart/form-data" ACTION="upload.asp?kat=<%=kat %>" METHOD="POST">
<P>Vælg et billede:<BR>
<INPUT NAME="fileupload" TYPE="file" size="20"><P>
<INPUT NAME="Action" TYPE="submit" VALUE="Upload">
</FORM>
<%
    Else
        Dim intFileUpload, strContentType, strFilename, intFileTotalBytes

        intFileUpload = FileUpload("billeder/bruger/", 20000, Array("image/gif", "image/jpeg", "image/pjpeg"), Array("gif", "jpg"), strContentType, strFilename, intFileTotalBytes)

        If intFileUpload = 0 Then
            Response.Write "Filen " & strFilename & " blev uploaded.<BR>"
            Response.Write "Det er en fil af typen " & strContentType & " og den fylder " & intFileTotalBytes & " bytes:<BR>"
            Response.Write "<IMG SRC=""billeder/bruger/" & strFilename & """><BR>"

On Error Resume Next
strSQL = "........."
Response.Write strSQL

            'Connection Open
            set Conn = Server.CreateObject("ADODB.Connection")
            Conn.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("db.mdb")

            strSQL = "UPDATE " & Request.Querystring("kat") & " SET billede = '" & strFileName & "' WHERE bruger = " & Session("username")
            Conn.Execute(strSQL)       
If Err.Number <> 0 Then
  Response.Write Err.Description
End If
        Else 
            Response.Write "Der opstod en fejl under upload!<BR>"
            Response.Write "Fejl nr: " & intFileUpload & "<BR>"
            Response.Write "Filnavn: " & strFilename & "<BR>"
            Response.Write "Filtype: " & strContentType & "<BR>"
            Response.Write "Filstørrelse: " & intFileTotalBytes & "<BR>"
        End If
    End If
%>
</BODY>
</HTML>
Avatar billede ramnir Nybegynder
12. december 2002 - 18:16 #21
<%@ Language="VBScript" %>


<!-- #INCLUDE FILE="fileupload.inc" -->

<HTML>
<HEAD>
<TITLE>Upload uden komponent</TITLE>
</HEAD>
<BODY>

<%
'*************************************
'**** Test af FileUpload funktion ****
'****                            ****
'**** Upload .gif eller .jpg      ****
'**** billede til mappen /upload  ****
'*************************************

    'Skal formen vises?
    If Request.ServerVariables("REQUEST_METHOD") <> "POST" Then
%>
<%
kat = Request.QueryString("kat")
%> 
<FORM ENCTYPE="multipart/form-data" ACTION="upload.asp?kat=<%=kat %>" METHOD="POST">
<P>Vælg et billede:<BR>
<INPUT NAME="fileupload" TYPE="file" size="20"><P>
<INPUT NAME="Action" TYPE="submit" VALUE="Upload">
</FORM>
<%
    Else
        Dim intFileUpload, strContentType, strFilename, intFileTotalBytes

        intFileUpload = FileUpload("billeder/bruger/", 20000, Array("image/gif", "image/jpeg", "image/pjpeg"), Array("gif", "jpg"), strContentType, strFilename, intFileTotalBytes)

        If intFileUpload = 0 Then
            Response.Write "Filen " & strFilename & " blev uploaded.<BR>"
            Response.Write "Det er en fil af typen " & strContentType & " og den fylder " & intFileTotalBytes & " bytes:<BR>"
            Response.Write "<IMG SRC=""billeder/bruger/" & strFilename & """><BR>"

On Error Resume Next

            'Connection Open
            set Conn = Server.CreateObject("ADODB.Connection")
            Conn.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("db.mdb")

            strSQL = "UPDATE " & Request.Querystring("kat") & " SET billede = '" & strFileName & "' WHERE bruger = " & Session("username")
Response.Write "strSQL = " & strSQL

            Conn.Execute(strSQL)       
If Err.Number <> 0 Then
  Response.Write Err.Description
End If
        Else 
            Response.Write "Der opstod en fejl under upload!<BR>"
            Response.Write "Fejl nr: " & intFileUpload & "<BR>"
            Response.Write "Filnavn: " & strFilename & "<BR>"
            Response.Write "Filtype: " & strContentType & "<BR>"
            Response.Write "Filstørrelse: " & intFileTotalBytes & "<BR>"
        End If
    End If
%>
</BODY>
</HTML>



Jeg har flyttet Response.Write ned så den skriver SQL statementet ud lige før det bliver eksekveret. Ellers er der ikke ændret noget.
Fejlmeddelelsen siger at der mangler en required parameter, så måske dit SQL statement mangler et parameter eller du forsøger at opdatere en linie i databasen som ikke må være tom (se database opsætning).
Prøv at skrive hvad strSQL er når siden ser således ud.

/ramnir
Avatar billede burningice Nybegynder
12. december 2002 - 18:16 #22
prøv at brug

strSQL = "UPDATE "& kat &" SET billede = '"& strFileName &"' WHERE bruger = " & Session("username")
Avatar billede fun22 Nybegynder
15. december 2002 - 21:05 #23
så skriver den det her:
strSQL = UPDATE SET billede = 'header.jpg' WHERE bruger = Syntax error in UPDATE statement.

Når jeg bruger den komplette kode som du kom med
Avatar billede fun22 Nybegynder
15. december 2002 - 21:05 #24
^^Til ramnir
Avatar billede ramnir Nybegynder
16. december 2002 - 10:51 #25
Hej fun22

Ok, her er der 2 ting der mangler.
Her er udskriften af sql statementet:

strSQL = UPDATE SET billede = 'header.jpg' WHERE bruger =

Her mangler et tabel navn efter UPDATE for før SET, det vil sige at din variabel Request.Querystring("kat") er tom. Din bruger er også tom, altså din Session("username"). Derfor får du fejlmeddelelsen:
Syntax error in UPDATE statement (pga den manglende tabel).

Du kalder altså 2 variabler som er tomme.

/ramnir
Avatar billede fun22 Nybegynder
16. december 2002 - 14:01 #26
kæft hvor er jeg dum. Nu du siger det kan jeg jo godt se at der mangler et tabel navn. Prøver lige
Avatar billede fun22 Nybegynder
16. december 2002 - 15:31 #27
Hvad betyder det her så:

strSQL = UPDATE msoftguns SET billede = 'header.jpg' WHERE bruger = admin No value given for one or more required parameters.
Avatar billede ramnir Nybegynder
16. december 2002 - 16:53 #28
Du skal lige have ping'er (') uden om din bruger

..... WHERE bruger = 'admin'

Ellers virker det ihvertfald ikke.

/ramnir
Avatar billede fun22 Nybegynder
16. december 2002 - 19:11 #29
strSQL = UPDATE msoftguns SET billede = 'header.jpg' WHERE bruger = 'adminSyntax error in string in query expression 'bruger = 'admin'.
Avatar billede ramnir Nybegynder
17. december 2002 - 00:14 #30
Det ser mystisk ud.

Prøv at erstatte disse linier:
Response.Write "strSQL = " & strSQL
Conn.Execute(strSQL)       
If Err.Number <> 0 Then
  Response.Write Err.Description
End If

Med dette:
Response.Write "strSQL = " & strSQL & "<BR>"
Conn.Execute(strSQL)       
If Err.Number <> 0 Then
  Response.Write "<BR>ErrorMessage - " & Err.Description
End If

Jeg kan ikke lige finde ud af hvor fejlmeddelelsen begynder og slutter.

NB! Er du sikker på at der overhovedet er noget i din Session? (Session("username"))

/ramnir
Avatar billede fun22 Nybegynder
17. december 2002 - 07:51 #31
du kan jo se at der står admin ud for brugernavnet
Avatar billede fun22 Nybegynder
18. december 2002 - 16:12 #32
nu får jeg det her:

strSQL = UPDATE msoftguns SET billede = 'header.jpg' WHERE bruger = 'admin

ErrorMessage - Der er en syntaksfejl i strengen i forespørgselsudtrykket "bruger = 'admin".
Avatar billede ramnir Nybegynder
18. december 2002 - 17:14 #33
Du mangler vist at afslutte dine pings (') rundt om brugernavnet.

strSQL = UPDATE msoftguns SET billede = 'header.jpg' WHERE bruger = 'admin'
Der skal være et ping til allersidst

/ramnir
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