webForumDet fria alternativet
Logga in / Bli medlem

Syntax error

ASP

8 svar · 218 visningar · startad av Hazze

Medlem sedan jan. 20002 453 inlägg
Trådstart#1

Håller på och pular lite med ett av alla IDG's script och har fått ett litet problem. Allt fungerar fint tills följande felmeddelande:

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

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'Id ='.

/news/webroot/detail.asp, line 8

Följande kod ska med andra ord innehålla ett fel:

SQL = "SELECT * FROM Nyheter Where Id =" & Request("Id")
SQL = SQL & " Order by Id Desc"
Set RS = Connection.Execute(SQL)

Datum=FormatDateTime(Now,2)

*Nybörjarstatusen är hög* ;)

Medlem sedan dec. 19992 085 inlägg
#2

Skriv så här:

SQL = "SELECT * FROM Nyheter Where Id ='" & Request("Id") & "'"

Medlem sedan jan. 20002 453 inlägg
#3

Felmeddelandet förvandlades till:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

/news/webroot/detail.asp, line 8

Medlem sedan dec. 200012 464 inlägg
#4

Det beror nog på att request("id") är odefinierat.

Testa att skriva ut sql-satsen med en response.write innan exekeveringen.

Medlem sedan jan. 20002 453 inlägg
#5

Hängde inte riktigt med där :)

Medlem sedan dec. 200012 464 inlägg
#6
SQL = "SELECT * FROM Nyheter Where Id =" & Request("Id")
SQL = SQL & " Order by Id Desc" 
response.write sql
response.end
'Set RS = Connection.Execute(SQL)

Då får man se hur SQL-en ser ut och då är det lättare att felsöka.

Jag är ganska säker på att id inte innehåller något och då får man titta på den sida som du kommer i från och kolla upp om ID ligger med i addressen eller inte.

Medlem sedan jan. 20002 453 inlägg
#7

Tack för hjälpen. Nu blir det dock ett annat fel. Får endast upp följande text:

SELECT * FROM Nyheter Where Id = Order by Id Desc

Medlem sedan juni 200032 967 inlägg
#8

precis. request("id") är tom. jag föreslår att du kollar upp namnet på formulärfältet / querystringen.

Medlem sedan dec. 200012 464 inlägg
#9

Jo det var precis vad jag förväntade mig. Dvs att request("id") returnerar en tom sträng. Om det hade varit riktigt så skulle det stått t.ex

SELECT * FROM Nyheter Where Id = 4711 Order by Id Desc

Som sagt får du titta på den sidan där man anropar denna sida. Förmodligen så står det nåt som liknar

   <FORM METHOD="GET" >

   <A HREF="xxx.asp"> Käck text </A>

där xxx är den sida där du har din select.

Det som saknas (gissar jag) är att man inte har med ID i urlen.

402 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)