webForumDet fria alternativet

Insert fel

5 svar · 185 visningar · startad av Emilo

EmiloMedlem sedan dec. 200096 inlägg
#1

Med denna kod:

<% Response.Buffer = True %>
<%
If NOT session("inloggad") = "ja" THEN
Session("wrong") = "<b>Du måste logga in för att kunna besöka den begärda sidan</b>"
Response.Redirect("default.asp")
Else 

Set db = Server.CreateObject("ADODB.Connection")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("rum_rum.mdb")
SQL = "INSERT INTO inlagg (Text, Datum, av, rum) VALUES ('" & Request.Form("text") &"','" & Request.Form("datum") &"','" & Request.Form("av") &"','" & Request.Form("rum") &"')"
set RS = db.Execute(SQL)

response.redirect("visa_rum.asp?rum="&request.form("rum") &"") 
End if %>

får jag detta felmeddelande:

Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'

[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i INSERT INTO-uttryck.

/emilohman/rum_skrivit.asp, rad 11

och rad 11 är:

set RS = db.Execute(SQL)

någon som vet vad det kan vara för fel?

------------------
EmilOhman.cjb.net

[Redigerat av Emilo den 09 apr 2001]

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Datumliteraler i Access omges av #

SQL = "INSERT INTO inlagg (Text, Datum, av, rum) VALUES ('" & Request.Form("text") &"',#" & Request.Form("datum") &"#,'" & Request.Form("av") &"','" & Request.Form("rum") &"')"
db.Execute SQL,,128

Om du skriver din execute enligt ovan så skapas inget recordset.

Tillägg:
Jag missade det där med text, så det behövs också
------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 09 apr 2001]

SPiNMedlem sedan mars 20007 896 inlägg
#3

set RS = db.Execute(SQL) borde se ut så här; db.Execute(SQL)

Det behövs inget RecordSet för att sätta in data i en databas, så det är bara att köra SQL-satsen.

Men det löser troligtvis inte ditt problem... Prova att sätta fältet Text inom klamrar.

Det borde alltså se ut så här:

...
SQL = "INSERT INTO inlagg ([Text], Datum, av, rum) VALUES ('" & Request.Form("text") &"','" & Request.Form("datum") &"','" & Request.Form("av") &"','" & Request.Form("rum") &"')"
db.Execute(SQL)
...

------------------
SPiN, bjorne.w@telia.com

-- §jr Grr... --

[Redigerat av SPiN den 09 apr 2001]

SPiNMedlem sedan mars 20007 896 inlägg
#4

LarsG > Görs inte det automatiskt av Access? Har för mig det...

Annars kan Emilo blanda våra inlägg för att få det att funka troligtvis :)

[r]
Du borde använda klamrar runt Text eftersom att det är ett reserverat ord i SQL, liksom Date, m.fl. Tänkte att det kunde vara bra att förklara det :)
[/r]

------------------
SPiN, bjorne.w@telia.com

-- §jr Grr... --

[Redigerat av SPiN den 09 apr 2001]

LarsGMedlem sedan dec. 200012 464 inlägg
#5

Jag tror nog att båda sakerna behöver ändras.

------------------
essentitia preter non sans multiplicandum

EmiloMedlem sedan dec. 200096 inlägg
#6

SPiN: Det som du skrev gjorde susen men när jag skrev det som LarsG sa fick jag samma felmeddelande som förut.

Tack för hjälpen! ;)

------------------
EmilOhman.cjb.net

122 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
120 ms — hämta tråd, inlägg och bilagor (db)