webForumDet fria alternativet

SQL-problem

3 svar · 230 visningar · startad av henkepenka

henkepenkaMedlem sedan sep. 2002125 inlägg
#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>&nbsp;<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?

@ndersMedlem sedan juni 200032 969 inlägg
#2
  1. Det finns ett SQL-forum. :)
  2. Använd inte [php]-taggar för asp-kod, det gör koden svårläst. :)
  3. 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

henkepenkaMedlem sedan sep. 2002125 inlägg
#3

Ursäkta så mycket att jag postade i fel forum och använde fel taggar...
...men tack för hjälpen!

GlitterMedlem sedan juli 2003465 inlägg
#4

det var inget...

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