Frågan 19 feb. 2004 12:14 #1 Hej!
Jag har en bannerrotation som räknar visningar, klick osv. Men när jag ska uppdatera 2 tabeller i databasen får jag detta fel:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[MySQL][ODBC 3.51 Driver][mysqld-3.23.58]You have an error in your SQL syntax near 'show=2, rotate=4 Where id =1' at line 1
Felet ligger på rad 30. Här kommer koden:
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="20"><img src="images/layout/empty.gif" width="1" height="86" vspace="20">
</td>
</tr>
<tr>
<td bgcolor="#FFFFFF" style="border: 1px Solid #CCCCCC" align="center">
<img src="images/layout/picAnnonser.jpg" width="140" height="12" hspace="20" vspace="20"><br>
<%
Set Banner = Server.CreateObject("ADODB.Connection")
OpenDatabaseBanner
ANTAL = 2
Set RecSet=Banner.Execute("SELECT * FROM ads Where showad=1 Order By rotate")
If RecSet.EOF Then%>
Inga banners inlagda!
<%Else
x = 0
Do Until RecSet.EOF Or x=ANTAL%>
<a href="ads/send.asp?id=<%=RecSet("id")%>" target="_blank" onclick="javascript:location.reload()" onmouseover="self.status='<%=RecSet("url")%>';return true" onmouseout="self.status=' ';return true"><img src="<%=RecSet("pic")%>" OnError="this.src='bilder/error_88.gif'" border="0"></a><br> <br>
<%
show = cint(RecSet("show"))
show=show+1
rotate = cint(RecSet("rotate"))
rotate=rotate+1
Banner.Execute "Update ads Set show="& cint(show) &", rotate="& cint(rotate) &" Where id =" & RecSet("id"),,128
x=x+1
RecSet.MoveNext
Loop
End If
RecSet.Close
Set RecSet = Nothing
Banner.Close
Set Banner = Nothing%>
<br>
</td>
</tr>
</table>
Någon som har någon idé om vad felet ligger?
@nders Medlem sedan juni 2000 32 967 inlägg
Det finns ett SQL-forum. :)
Använd inte [php]-taggar för asp-kod, det gör koden svårläst. :)
Lösning på problemet: show är ett reserverat ord i MySQL. Byt namn på fältet. :)
Tillägg:
4) När man har problem med en SQL-fråga är det lättast att felsöka den genom att istället för att exekvera den, skriva ut den med response.write. Det gör det lätt att se om värden saknas, kommatecken sitter på fel ställen, etc. Det hade iofs inte hjälpt i det här fallet, men tänk på det.
Mvh
Ursäkta så mycket att jag postade i fel forum och använde fel taggar...
...men tack för hjälpen!