Avatar billede webbe Nybegynder
06. august 2003 - 09:28 Der er 16 kommentarer og
2 løsninger

Syntax-fejl

Hejsa

Jeg har følgende kode som åbenbart giver en syntax-fejl

sql = "UPDATE Boliger SET Ledig_dato='"&Ledig&"', Lejemaalnr="&Lnr&" WHERE BID="&Upload.Form("id")
Conn.Execute(sql)

Personligt kan jeg ikke se en syntax-fejl, men det kan være i andre kan.

Feltet Ledig_Dato er af typen dato, mens feltet lejemaalnr er af typen tal - ingen af dem er obligatoriske i databasen som er en Access XP.
Avatar billede medions Nybegynder
06. august 2003 - 09:31 #1
sql = "UPDATE Boliger SET Ledig_dato= #"&Ledig&"#, Lejemaalnr="&Lnr&" WHERE BID="&Upload.Form("id")
Conn.Execute(sql)

//>Rune
Avatar billede medions Nybegynder
06. august 2003 - 09:31 #2
Når et felt er af typen Dato skal der være # og # omkring data'en...

//>Rune
Avatar billede webbe Nybegynder
06. august 2003 - 09:33 #3
medions:

Det er ikke på datoen den laver fejl - det er på lejemaalnr!!!
Er derfor jeg undredede mig, men prøver lige det du skriver.
Avatar billede webbe Nybegynder
06. august 2003 - 09:35 #4
Virkede ikke - har nu ændret til:

sql = "UPDATE Boliger SET Lejemaalnr="&lnr&" WHERE BID="&Upload.Form("id")

men får stadig syntax-fejl!
Avatar billede medions Nybegynder
06. august 2003 - 09:36 #5
sql = "UPDATE Boliger SET Ledig_dato= #"&Ledig&"#, Lejemaalnr="&CIntLnr)&" WHERE BID="& CInt(Upload.Form("id"))
Conn.Execute(sql)

Prøv sådan så!

//>Rune
Avatar billede vbcoder Nybegynder
06. august 2003 - 09:36 #6
Hvis din variable Lnr ikke er konverteret til tal med f.x. cint(Lnr) vil du få fejl da sql motoren forventer et tal

//vbcoder
Avatar billede medions Nybegynder
06. august 2003 - 09:38 #7
Hov, jeg fik vidst ikke lige den første parantes med!

sql = "UPDATE Boliger SET Ledig_dato= #"&Ledig&"#, Lejemaalnr="&CInt(Lnr)&" WHERE BID="& CInt(Upload.Form("id"))
Conn.Execute(sql)

Dette skulle nu gerne virke!

//>Rune
Avatar billede webbe Nybegynder
06. august 2003 - 09:39 #8
Der er ikke problemer med det i min Insert statement!
Avatar billede medions Nybegynder
06. august 2003 - 09:41 #9
nej, men prøv at gør som jeg lige har svaret, den er 100% sikker efterhånden :-)

//>Run
Avatar billede webbe Nybegynder
06. august 2003 - 10:00 #10
Nu får jeg

Microsoft VBScript runtime error '800a000d'

Type mismatch: 'CInt'

/admin/save.asp, line 280

Her er den fulde sql, som den skal se ud:

sql = "UPDATE Boliger SET Ledig_dato='"&Ledig&"',Husleje="&CInt(husleje)&",Kabel_pris="&CInt(tvpris)&",Varme="&CInt(varme)&",Vand="&CInt(vand)&",Indskud="&CInt(indskud)&",Beskrivelse='"&beskr&"',KabelTV="&kabel&",Pulterrum="&pulterrum&",Parkering="&parkering&",Have="&fhave&",Vaskeri="&vaskeri&",Cykelkaelder="&cykel&",Andet='"&andet&"',Erhverv="&erhverv&",Pic1='"&pic11&"',Pic2='"&pic21&"',Pic3='"&pic31&"',Pic4='"&pic41&"' WHERE BID="&CInt(Upload.Form("id"))
Avatar billede medions Nybegynder
06. august 2003 - 10:04 #11
sql = "UPDATE Boliger SET Ledig_dato='"&Ledig&"',Husleje="&Clng(husleje)&",Kabel_pris="&Clng(tvpris)&",Varme="&Clng(varme)&",Vand="&Clng(vand)&",Indskud="&Clng(indskud)&",Beskrivelse='"&beskr&"',KabelTV="&kabel&",Pulterrum="&pulterrum&",Parkering="&parkering&",Have="&fhave&",Vaskeri="&vaskeri&",Cykelkaelder="&cykel&",Andet='"&andet&"',Erhverv="&erhverv&",Pic1='"&pic11&"',Pic2='"&pic21&"',Pic3='"&pic31&"',Pic4='"&pic41&"' WHERE BID="&Clng(Upload.Form("id"))

Du kunne evt. også hvis det er store mænder data du skal gemme bruge Dubble, altså CDbl()

//>Rune
Avatar billede webbe Nybegynder
06. august 2003 - 10:12 #12
HAr fundet problemet - det er når et felt er tomt fejlen opstår - selv om jeg aldrig har oplevet det før!
Avatar billede jytte Nybegynder
06. august 2003 - 10:27 #13
Et fejlfindingsteknik jeg altid bruger er at udskrive sqlstrengen

response.write sql

Så kan jeg straks se om sql-sætningen indeholdet det jeg regner med.
Avatar billede webbe Nybegynder
06. august 2003 - 10:33 #14
Bruger jeg også selv, og har også brugt den, men uden at finde fejl!
Avatar billede webbe Nybegynder
06. august 2003 - 10:42 #15
Hvordan deler jeg pointene for hjælpen?
Avatar billede medions Nybegynder
06. august 2003 - 11:04 #16
Klikker på advanceret...

//>Rune
Avatar billede webbe Nybegynder
06. august 2003 - 11:55 #17
medions:

Var ikke lige det jeg mente - vil ikke være unfair over for nogen af jer, men vil bare høre hvordan I mener jeg skal lave pointfordelingen.
Avatar billede eagleeye Praktikant
06. august 2003 - 18:12 #18
Lige så du ikke får skrive krampe med Cint, så passer det ikke det som de to andre srkiver at den skal med for eller giver det fejl. Det er split at tid og resurser at konveret ført til tal så ligge tallet ind i en tekst streng.

Da det SQL sætningen er en streng kan den på igen måde se hvad data type det var før det kom ind i strengen. Samt SQL via Access definere at tal ikke er omsluttet at pinger '.
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