Avatar billede webbygger Nybegynder
09. december 2005 - 21:25 Der er 12 kommentarer og
1 løsning

Fejl når fil felt er tomt!

Jeg har et script, hvor man kan anmelde/bedømme ting i!
I formularet er der mulighed for at upload et billede til anmeldelsen, men hvis man IKKE upload et billede kommer script op med denne fejl selvom jeg har tilladt o værdi i databasen:

Microsoft JET Database Engine error '80040e14'

Syntax error in INSERT INTO statement.

/an/formular_grej.asp, line 211

Script ser således ud:

<%
if Request.ServerVariables("REQUEST_METHOD") = "POST" then

  Dim mySmartUpload
  Dim file
  Dim intCount
  intCount=1
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

  mySmartUpload.AllowedFilesList = "gif,jpg,jpeg,png"

  mySmartUpload.DenyPhysicalPath = False
  mySmartUpload.MaxFileSize = 2000000

  mySmartUpload.Upload

   
  For each file In mySmartUpload.Files
      If file.IsMissing = false Then
        file.SaveAs(server.mappath("original/") & day(now) & month(now) & year(now)  & hour(now) & minute(now) &  file.FileName)


'Her kan man så sætte noget ASPImage ind.

filnavn = (server.mappath("original/") & day(now) & month(now) & year(now)  & hour(now) & minute(now) &  file.FileName)
filnavnThumb100 = "thumbnails450/" & day(now) & month(now) & year(now)  & hour(now) & minute(now) &  file.FileName

Set Image = Server.CreateObject("AspImage.Image")
Image.LoadImage (server.mappath("original/") & day(now) & month(now) & year(now)  & hour(now) & minute(now) &  file.FileName)
'Find billede højde og brede
Width = Image.MaxX
Height = Image.MaxY    '<------------linie 72

IMGHEIGHT = Image.MaxY
IMGWIDTH = Image.MaxX
If IMGHEIGHT > IMGWIDTH Then
 
newSize = 336
NewWidth  = newSize
NewHeight = (newSize / Width) * Height
Image.Resize newSize,NewHeight
 
Else

newSize = 450
NewWidth  = newSize
NewHeight = (newSize / Width) * Height
Image.Resize newSize,NewHeight

End If


'Gem billedet
Image.ImageFormat = 1
Image.JPEGQuality = 100
Image.FileName = Server.Mappath("thumbnails450") & "/" & day(now) & month(now) & year(now)  & hour(now) & minute(now) &  file.FileName
Image.SaveImage




Set Image = Nothing

if CStr(intCount) = "0" then 
        streng = streng & "'" & "original" & "/"  & day(now) & month(now) & year(now)  & hour(now) & minute(now) &  file.FileName & "', "
else
streng = streng & "'" & "original" & "/"  & day(now) & month(now) & year(now)  & hour(now) & minute(now) &  file.FileName & "'"
end if
        intCount = intCount + 0
  End If
  Next
 
  set Conn = Server.CreateObject("ADODB.Connection")
  strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.Mappath("jerg.mdb")
  Conn.Open strConn
 
 

  'henter form felterne
  navn = Replace(mySmartUpload.form("navn"),"'","''")
  kategori = Replace(mySmartUpload.form("kategori"),"'","''")
  produkt = Replace(mySmartUpload.form("produkt"),"'","") 
  pris = Replace(mySmartUpload.form("pris"),"'","")
  karakter = Replace(mySmartUpload.form("karakter"),"'","")
  mail = Replace(mySmartUpload.form("mail"),"'","''")
  url = Replace(mySmartUpload.form("url"),"'","''")
  ture = Replace(mySmartUpload.form("ture"),"'","''")
  beskriv = Replace(mySmartUpload.form("beskriv"),"'","''")
 
  beskriv = Replace(beskriv,vbCrLf,"<br>")
  dato = Replace(mySmartUpload.form("dato"),"'","''")
  billede = streng ' notat
 
if  kategori="" or produkt="" or beskriv="" or not isNumeric(karakter)  then
  Response.Write "Fejl i indtastningen."
  Response.End
else
  'kolonne typerne : navn :tekst, dato :date/time, karakter :tal, beskrivelse :notat/tekst
  sql = "insert into anm (navn, kategori, produkt, pris, karakter, url, ture, beskrivelse, dato, billede  ) values ("
  sql = sql & "'" & navn & "', "
  sql = sql & "'" & kategori & "', "
  sql = sql & "'" & produkt & "', "
  sql = sql & "'" & pris & "', "
  sql = sql & "" & karakter & ", "
  sql = sql & "'" & url & "', "
  sql = sql & "'" & ture & "', "
  sql = sql & "'" & beskriv & "', "
  sql = sql & "'" & day(now) & "-" & month(now) & "-" & year(now)  & "', "
  sql = sql & "" & billede & ""
  sql = sql & ")"




 
 

  Conn.Execute(sql)
  Conn.Close
  Set conn=nothing
 
  Response.redirect "anmeldelse.asp" 
end if
end if 
%>
Avatar billede tjp Mester
10. december 2005 - 01:10 #1
Hvad mener du med linjen:
billede = streng ' notat
Avatar billede busschou Praktikant
10. december 2005 - 02:51 #2
Tja hvis der er en syntaks error så er det altid en god ide at udskrive sin sql sætning for at kunne se hvilken syntaks fejl der er tale om
Så prøv lige lave en
response.write sql
Avatar billede busschou Praktikant
10. december 2005 - 02:54 #3
fx hvis du har en access database er det jo normalt ikke bruge ' omkring datoer men #
Avatar billede busschou Praktikant
10. december 2005 - 03:02 #4
i øvrigt sætter du billede lig streng og streng har du inden sat lig med
-----
streng = streng & "'" & "original" & "/"  & day(now) & month(now) & year(now)  & hour(now) & minute(now) &  file.FileName & "', "
-----
Dvs hvis streng original er "tom" og der ingen fil er, så er streng nu lig med
-----
streng = "'original/101220050300',"
-----
Der hvor du har linjen
sql = sql & "" & billede & ""
vil der så stå
sql = sql & "'original/101220050300',"
men så er der jo et komma for meget.....

Så prøv skrive din sql ud og så debug derfra :o)
Avatar billede webbygger Nybegynder
10. december 2005 - 14:12 #5
Script/form kører godt nok - hvis jeg uploade et billede, men den kommer op med en fejl når "billede feltet" er tomt!!!

Her er resultatet af response.write sql:

insert into anm (navn, kategori, produkt, pris, karakter, url, ture, beskrivelse, dato, billede ) values ('admin', 'Fluestænger', 'test', '', 1, '', '1', 'qqqq', '10-12-2005', )
Microsoft JET Database Engine error '80040e14'

Syntax error in INSERT INTO statement.

/an/formular_grej.asp, line 211
Avatar billede busschou Praktikant
10. december 2005 - 20:46 #6
som jeg skrev, kan du så se at du får et komma for meget til sidst efter datoen
Prøv ændre
-----
if CStr(intCount) = "0" then
        streng = streng & "'" & "original" & "/"  & day(now) & month(now) & year(now)  & hour(now) & minute(now) &  file.FileName & "', "
-----
til
-----
if CStr(intCount) = "0" then
        streng = streng & "'" & "original" & "/"  & day(now) & month(now) & year(now)  & hour(now) & minute(now) &  file.FileName & ""
Avatar billede webbygger Nybegynder
10. december 2005 - 20:56 #7
Det ændre desværre ikke på det :o[

insert into anm (navn, kategori, produkt, pris, karakter, url, ture, beskrivelse, dato, billede ) values ('admin', 'Fluestænger', 'test', '2 kroner', 1, '', '5', 'HMmmm', '10-12-2005', )
Microsoft JET Database Engine error '80040e14'

Syntax error in INSERT INTO statement.

/an/formular_grej.asp, line 211
Avatar billede webbygger Nybegynder
10. december 2005 - 21:06 #8
busschou -> Jeg ved til fulde at det er Dig der er eksperten os to imellem ;o)
Men har problemet ikke noget, at gøre med det "tomme" filefelt???
Avatar billede busschou Praktikant
11. december 2005 - 08:12 #9
For det første så beklager jeg hvis jeg ikke lige svarer men jeg får  ikke mails af en og anden grund...:o(
Nå men din kode er også lidt spøjs synes jeg så det er muligt jeg har kigget på det forkerte....
At du har tilladt 0 værdi betyder egentlig at du har tilladt Null værdi ;o)
Så prøv rette linjen
-----
sql = sql & "" & billede & ""
-----
til
-----
if billede = "" then
  sql = sql & " Null "
else
  sql = sql & "" & billede & ""
end if
-----
Jeg forstår stadig ikke din if sætning som jeg først kommenterede, fx tæller du intCount op med 0 så hvorfor have en if else på størrelsen af intCount når den aldrig tælles op?
Avatar billede webbygger Nybegynder
11. december 2005 - 11:37 #10
busschou - du skal BESTEMT ikke beklage noget over for mig, da jeg er taknemlig over at I gider at bruge tid og energi på Os mere uvidende......

Det virker efter jeg har sat
if billede = "" then
  sql = sql & " Null "
else
  sql = sql & "" & billede & ""
end if
ind, så det er bare kanon!!!

Den if sætning du hentyder til, har jeg aldrig forstået meningen med, men der KAN også skrives bøger om hvad jeg ikke for står!!!

Smider du et svar busschou?
Avatar billede webbygger Nybegynder
22. januar 2006 - 14:03 #11
Hva busschou får du stadig ikke nogen mail???
Jeg kunne godt tænke, at få ryddet lidt op med de point jeg har ude....
Avatar billede busschou Praktikant
29. januar 2006 - 13:18 #12
jeps nu gør jeg - ved ikke hvordan det kan være man som it nørd ikke kan opdage at ens spam filter sletter alle eksperten mails...DOH... hehe
:o)
Avatar billede webbygger Nybegynder
03. februar 2006 - 21:44 #13
Man kan IKKE se alt busschou - men tak hjælpen ihvertfald!
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