Avatar billede w13 Novice
06. april 2004 - 14:14 Der er 15 kommentarer og
1 løsning

Fejl i koden

-Hej, Eksperter...

-Jeg sidder og roder med noget ASP-kode, som desværre ikke ser ud til at virke... Den skulle bare updatere nogle oplysninger i databasen, men når jeg kører koden på serveren, får jeg denne fejlmelding:
___________________________________

Microsoft JET Database Engine error '80040e14'

Syntax error in UPDATE statement.

/musicstuff/bruger/retbruger_ok.asp, line 41
___________________________________

<%
set rs = server.createobject("adodb.connection")
strDSN = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("../admin/db/database.mdb")
rs.open strDSN
sql = "update brugere set password='"&request.form("password")&"', navn='"&request.form("navn")&"', profil='"&request.form("profil")&"' where id=" & request.querystring("id")
set rs =rs.execute(sql)
%>
___________________________________

-Hvad er der galt?
___________________________________

  W13
Avatar billede kovalt Nybegynder
06. april 2004 - 14:16 #1
er du sikker på request.querystring("id") er et tal
Avatar billede larsen Nybegynder
06. april 2004 - 14:19 #2
Er det med vilje du bruger querystring til at overføre id'et?
Avatar billede fennec Nybegynder
06. april 2004 - 14:19 #3
der ser ikke ud til at være noget galt, medmindre din request.querystring("id") er tom eller ikke er et tal som kovalt også skriver. Prøv at skrive din sql streng ud, så er det nemmere at se hvor fejlen er:


response.write sql
set rs =rs.execute(sql)
Avatar billede w13 Novice
06. april 2004 - 14:23 #4
Så skriver den:
_________________________

update brugere set password='Totte2264', navn='Tobias Jensen', profil='Da Weyybmaster!' where id=19
_________________________

Larsen>> Ja, querystringen er bevidst... Der er sikkert smartere måder, men jeg kender dem ikke...
Avatar billede w13 Novice
06. april 2004 - 14:23 #5
Og ja, id'en er et tal! (Autonummering!)
Avatar billede fennec Nybegynder
06. april 2004 - 14:26 #6
Det ser rigtigt ud. Har du en max længde på nogle af felterne, som bliver overskredet???
Og eksistere det id i databasen??
Avatar billede w13 Novice
06. april 2004 - 14:35 #7
Nej, jeg har ingen maxlængde på... Navn og password er tekst-felter, profil er notat-felt og id er autonummering! Men jeg har fundet ud af, at 'linje 41', som skulle indeholde fejlen, er denne linje:

set rs =rs.execute(sql)
Avatar billede kovalt Nybegynder
06. april 2004 - 14:37 #8
det kan ikke være det udråbstegn du sender med... bare et vildt bud
Avatar billede w13 Novice
06. april 2004 - 14:39 #9
Nej, det ændrer intet... Prøvede lige! Kan det tænkes at være de manglende apostroffer omkring id'et? Og i det tilfælde, hvordan skal koden SÅ se ud??
Avatar billede fennec Nybegynder
06. april 2004 - 14:40 #10
prøv bare med rs.execute(sql). når der ikke er en retur værdi er det ikke nødvendig at gemme det i et "set". Du skulle nok også omdøbe rs til conn:

<%
set conn = server.createobject("adodb.connection")
strDSN = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("../admin/db/database.mdb")
conn.open strDSN
sql = "update brugere set password='"&request.form("password")&"', navn='"&request.form("navn")&"', profil='"&request.form("profil")&"' where id=" & request.querystring("id")
conn.execute(sql)
%>
Avatar billede kovalt Nybegynder
06. april 2004 - 14:42 #11
Hvad hvis du siger:

where id=" & trim(request.querystring("id"))
Avatar billede w13 Novice
06. april 2004 - 14:46 #12
-Beklager... Ingen af delen virkede... Det udnerlige er, at jeg har en anden side, som opdaterer artikler i stedet for brugere, og den virker... I får lige koden:
_______________________________

<%
set rs = server.createobject("adodb.connection")
strDSN = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("../db/database.mdb")
rs.open strDSN
sql = "update artikel set forfatter='"&request.form("forfatter")&"', overskrift='"&request.form("overskrift")&"', intro='" & request.form("intro") & "', artikel='"&request.form("artikel")&"', dato='"&request.form("dato")&"' where id=" & request.querystring("id")
set rs =rs.execute(sql)
%>
Avatar billede fennec Nybegynder
06. april 2004 - 14:48 #13
Prøv at skrive [brugere] i stedet. Jeg mener dog ikke at brugere er et reserveret ord, men man ved aldrig.
Avatar billede fennec Nybegynder
06. april 2004 - 14:51 #14
password er reserveret....

sql = "update brugere set [password]='"&request.form("password")&"', navn='"&request.form("navn")&"', profil='"&request.form("profil")&"' where id=" & request.querystring("id")
Avatar billede w13 Novice
06. april 2004 - 14:56 #15
Fennec er et geni! Det var da det, der var galt... Tark!
Avatar billede fennec Nybegynder
06. april 2004 - 14:57 #16
selv tak. Jeg burde have set den tidligere....
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