23. maj 2005 - 22:22
Der er
37 kommentarer og 1 løsning
Syntax error (missing operator) in query expression.
hej eksperter ... Jeg har et problem med min database forbindelse eller det vil sige min syntaks ... ////her er koden: <%uid = "&request.querystring("'"uid"'")&" SQLundermenu = "SELECT * FROM undermenu WHERE topmenuid="'&uid&"'" Set undermenu = Conn.Execute(SQLundermenu) do while undermenu.eof=false%> <a href="?show=<%=undermenu("id")%>&uid=<%=undermenu("topmenuid")%>"> <%=undermenu("undermenunavn")%></a><br><br> <%undermenu.MoveNext Loop%> ////og her er hele fejl meldingen: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'topmenuid='. /svk/Default.asp, line 60 Jeg håber i kan hjælpe mig... -Martin
Annonceindlæg fra Netic
OG helst forklare hvorfor den ikke vil ....
Skal -- uid = "&request.querystring("'"uid"'")&" -- ikke være følgende ? -- uid = request.querystring("uid")
hvis topmenuid er et tal i tabellen så skal der endvidere ikke plinger ' omkring altså -- SQLundermenu = "SELECT * FROM undermenu WHERE topmenuid="&uid
Det her virker nok meget bedre: <% uid = request.querystring ("uid") SQLundermenu = "SELECT * FROM undermenu WHERE topmenuid='" & uid & "'" Set undermenu = Conn.Execute(SQLundermenu) do while undermenu.eof=false %> <a href="?show=<% =undermenu("id") %>&uid=<% =undermenu("topmenuid") %>"> <% =undermenu("undermenunavn") %></a><br><br> <% undermenu.MoveNext Loop %>
det ændrede ikke i noget ....
For det første var der din første linje som var gået fuldstændigt i ged. For det andet var der en enkelt-ping og en dobbelt-oing som havde byttet plads i din SQL: SQLundermenu = "SELECT * FROM undermenu WHERE topmenuid="'&uid&"'"
nielle >> hvis jeg bruger dit scrips får jeg flg. fejl Microsoft OLE DB Provider for ODBC Drivers (0x80040E07) [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression. /svk/Default.asp, line 60
prøv fjerne plingerne som sagt
Too late... Nå, men lad os se din nuværende kode.
Den nuværende kode: <%uid = request.querystring ("uid") SQLundermenu = "SELECT * FROM undermenu WHERE topmenuid='" & uid & "'" Set undermenu = Conn.Execute(SQLundermenu) do while undermenu.eof=false%> <a href="?show=<% =undermenu("id") %>&uid=<% =undermenu("topmenuid") %>"> <%=undermenu("undermenunavn")%></a><br><br> <%undermenu.MoveNext Loop%>
<%uid = request.querystring ("uid") SQLundermenu = "SELECT * FROM undermenu WHERE topmenuid=" & uid Set undermenu = Conn.Execute(SQLundermenu) do while undermenu.eof=false%> <a href="?show=<% =undermenu("id") %>&uid=<% =undermenu("topmenuid") %>"> <%=undermenu("undermenunavn")%></a><br><br> <%undermenu.MoveNext Loop%>
for resten så er der ingen grund til at teste på om undermenu.eof = false Logisk set vil følgende være hurtigere do while not undermenu.eof Men det er mest nok en smags sag :o)
busschou >> jeg får flg. fejl hvis jeg bruger dit script Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'topmenuid='. /svk/Default.asp, line 60
prøv lige udskrive din sql og send den herind ..--- <%uid = request.querystring ("uid") SQLundermenu = "SELECT * FROM undermenu WHERE topmenuid=" & uid response.write SQLundermenu Set undermenu = Conn.Execute(SQLundermenu) do while undermenu.eof=false%> <a href="?show=<% =undermenu("id") %>&uid=<% =undermenu("topmenuid") %>"> <%=undermenu("undermenunavn")%></a><br><br> <%undermenu.MoveNext Loop%>
Der mangler også noget i din href, nemlig selve URLet - men det har nu ikke noget med fejlen at gøre.
det er ligemeget eftersom jeg jo bare linker på et andet sted i samme dokument
yes.. men din fejl skyldes noget i din sql.. måske at uid er tom eller måske noget andet...så prøv udskriv den :o)
Er du helt sikker på at det skal være "querystring": uid = request.querystring("uid") - og ikke : uid = Request.Form("uid")
Prøv med en lille debug-udskrift af din SQL: <% uid = request.querystring("uid") SQLundermenu = "SELECT * FROM undermenu WHERE topmenuid=" & uid Response.Write("DEBUG: " & SQLundermenu) Set undermenu = Conn.Execute(SQLundermenu) do while not undermenu.eof %> <a href="?show=<% =undermenu("id") %>&uid=<% =undermenu("topmenuid") %>"> <% =undermenu("undermenunavn") %></a><br><br> <% undermenu.MoveNext Loop %>
nielle >> du har selv kigget på href´en ik ;o)... det må vel siges at være en querystring :o)
nielle >> debug som skrevet 22:35:12 ... hmm sover vi...hehe
...og burde det ikke være: show=<% =undermenu("uid") %> med et lille u foran "id"?
<%SQLtopmenu = "SELECT * FROM topmenu ORDER BY id desc" Set topmenu = Conn.Execute(SQLtopmenu) do while topmenu.eof=false%> <a href="?show=<%=topmenu("id")%>&uid=<%=topmenu("id")%>"><%=topmenu("menunavn")%></a> - <%=topmenu("id")%> <%topmenu.MoveNext Loop%> <%uid = 1 SQLundermenu = "SELECT * FROM undermenu WHERE topmenuid=" & uid Set undermenu = Conn.Execute(SQLundermenu) do while undermenu.eof=false%> <a href="?show=<% =undermenu("id") %>&uid=<% =undermenu("topmenuid") %>"> <%=undermenu("undermenunavn")%></a><br><br> <%undermenu.MoveNext Loop%>
Sover. Ja. :^| Må vist snart investere i et Pro-abonnement!
det er hele scriptet ....
martin86 >> og giver den ingen fejl nu når uid = 1??
martin86> Jeg forstår ikke... hvad går den sidste halv del af 23/05-2005 22:43:06 ud på?
martin86 >> mit bud er at første gang dit script køres så er uid ikke givet i adresselinjen...det er den først når du klikker på linket... så du bør vel teste om den er der eller ej før du laver din sql ?
jo den giver stadig fejl .... det er det mit problem er ....
giver en af disse to så også fejl? SQLundermenu = "SELECT * FROM undermenu WHERE topmenuid=1" eller SQLundermenu = "SELECT * FROM undermenu WHERE topmenuid='1'"
SQLundermenu = "SELECT * FROM undermenu WHERE topmenuid='1'" den overstående viser det rigtige resultat
så burde følgende også virke -- <%SQLtopmenu = "SELECT * FROM topmenu ORDER BY id desc" Set topmenu = Conn.Execute(SQLtopmenu) do while topmenu.eof=false%> <a href="?show=<%=topmenu("id")%>&uid=<%=topmenu("id")%>"><%=topmenu("menunavn")%></a> - <%=topmenu("id")%> <%topmenu.MoveNext Loop%> <%uid = 1 SQLundermenu = "SELECT * FROM undermenu WHERE topmenuid='" & uid & "'" Set undermenu = Conn.Execute(SQLundermenu) do while undermenu.eof=false%> <a href="?show=<% =undermenu("id") %>&uid=<% =undermenu("topmenuid") %>"> <%=undermenu("undermenunavn")%></a><br><br> <%undermenu.MoveNext Loop%>
<%uid = request.querystring ("uid") SQLundermenu = "SELECT * FROM undermenu WHERE topmenuid='" & uid & "'" Set undermenu = Conn.Execute(SQLundermenu) do while undermenu.eof=false%> <a href="?show=<% =undermenu("id") %>&uid=<% =undermenu("topmenuid") %>"> <%=undermenu("undermenunavn")%></a><br><br> <%undermenu.MoveNext Loop%> DETTE VIRKER
må jeg bede om et svar busschou
det er jo fuldstændig magen til det du skrev 22:30:19 hehe
ja ok da :o).. men godt det virker
åbenbart ikke ... ellers vilel det være mærkeligt i hvert fald... tka for hjælpen LUKKER
Kurser inden for grundlæggende programmering