webForumDet fria alternativet

Vad är det för fel på min sida?!

ASP

6 svar · 348 visningar · startad av Schrimp

Medlem sedan jan. 20024 inlägg
Frågan#1
<!-- #include file="ADOVBS.INC" -->
<%
Dim namn
Dim text
Dim datum
Dim tid
Dim ip

namn = Request.Form("name")
text = Request.Form("text")
datum = (FormatDateTime(Now(),2))
tid = (FormatDateTime(Now(),4))
ip = Request.ServerVariables("REMOTE_ADDR")

	set conn = Server.CreateObject("ADODB.Connection")
	conn.open "Driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("database01.mdb")

	sql = "INSERT INTO Klotter (Name,Text,Datum,Tid,IP)"
	sql = sql & " VALUES(" & namn & "," & text & ",'" & datum & "','" & tid & "','" & ip & "')"

	conn.Execute(sql)
	conn.close

Response.Redirect "default.asp?page=007"
%>

Denna sidan tar emot värden från "klotter.asp" där man kan skriva in namn och "klotter".. sedan, när denna sidan körs får jag fram detta felmeddelandet:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.
/klotter_add.asp, line 21

och den raden är ju den med "conn.execute(sql)

jag o en polare har slitit vårat hår nu.. vad är det som är fel..?? har testat med fyrkanter och fnuttar o allt.. men det ger sig inte..

------------------
"Every morning in Africa, a gazelle wakes up, it knows it must outrun the fastest lion, or else it will be eaten. Every morning in Africa a lion wakes up, it knows it must outrun the slowest gazelle, or else it will starve to death. It doesn't matter if you're a lion or a gazelle, when the sun rises, you better be running.."

Medlem sedan juni 200032 967 inlägg
#2

Hej och välkommen till wF. :)

Du har valt lite olyckliga namn på dina fält. Text, möjligen också Datum och Name är reserverade och bör inte användas som fältnamn.

Du kan komma runt detta genom att klamra dina fältnamn, men jag rekommenderar att du byter namn på fälten.

sql = "INSERT INTO Klotter ([Name],[Text],[Datum],Tid,IP)"
sql = sql & " VALUES(" & namn & "," & text & ",'" & datum & "','" & tid & "','" & ip & "')"

Mvh,

Medlem sedan jan. 20024 inlägg
#3
<!-- #include file="ADOVBS.INC" -->
<%
Dim callID
Dim body
Dim dag
Dim tpunkt
Dim ip

callID = Request.Form("namn")
body = Request.Form("body")
dag = (FormatDateTime(Now(),2))
tpunkt = (FormatDateTime(Now(),4))
ip = Request.ServerVariables("REMOTE_ADDR")

	set conn = Server.CreateObject("ADODB.Connection")
	conn.open "Driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("database01.mdb")

	sql = "INSERT INTO Klotter (CallID,Body,Dag,tpunkt,IP)"
	sql = sql & " VALUES(" & callID & "," & body & ",'" & dag & "','" & tpunkt & "','" & ip & "')"

	conn.Execute(sql)
	conn.close

Response.Redirect "default.asp?page=007"
%>

Denna kod genererar nu följande felmeddelande, har fått upp det på andra sidor, men med min ringa vetskap vet jag inte hur jag fick bort det. :)

Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 2.
/klotter_add.asp, line 21

Tack @nders! :P

------------------
"Every morning in Africa, a gazelle wakes up, it knows it must outrun the fastest lion, or else it will be eaten. Every morning in Africa a lion wakes up, it knows it must outrun the slowest gazelle, or else it will starve to death. It doesn't matter if you're a lion or a gazelle, when the sun rises, you better be running.."

Medlem sedan dec. 200012 464 inlägg
#4

Det låter som om det saknas lite apostrofer.

Om callid och body är av typen text så

sql = "INSERT INTO Klotter (CallID,Body,Dag,tpunkt,IP)"
sql = sql & " VALUES('" & callID & "','" & body & "','" & dag & "','" & tpunkt & "','" & ip & "')"

Text-värden anges inom '
Datetime-värden anges inom #
Numeriska värden har inga avgränsare

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

Medlem sedan juni 200032 967 inlägg
#5

Too few parameters. Expected 2.

Felmeddelandet antyder att två tabell- eller fältnamn är felskrivna i din SQL-fråga.

Mvh,

Medlem sedan jan. 20024 inlägg
#6

Text-värden anges inom '
Datetime-värden anges inom #
Numeriska värden har inga avgränsare

okej.. men min "dag", "tpunkt" och "ip" innehåller siffror och punkter m.m. "tpunkt" innehåller ex. "22:15"
och "ip".. tja.. "127.0.0.1"

ska man skriva dom som '# & tpunkt & #'?

------------------
"Every morning in Africa, a gazelle wakes up, it knows it must outrun the fastest lion, or else it will be eaten. Every morning in Africa a lion wakes up, it knows it must outrun the slowest gazelle, or else it will starve to death. It doesn't matter if you're a lion or a gazelle, when the sun rises, you better be running.."

Medlem sedan juni 200032 967 inlägg
#7

Det har egentligen inte att göra med vad det är för värden som skall kastas in, utan vad fälten har för datatyper.

Datatyp Text/PM/Memo : ange värden inom '
Datatyp Datum/Tid : ange värden inom #
Datatyp Tal: inga avgränsare

Mvh,

268 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)