Avatar billede martin86 Nybegynder
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
Avatar billede martin86 Nybegynder
23. maj 2005 - 22:23 #1
OG helst forklare hvorfor den ikke vil ....
Avatar billede busschou Praktikant
23. maj 2005 - 22:25 #2
Skal
--
uid = "&request.querystring("'"uid"'")&"
--
ikke være følgende ?
--
uid = request.querystring("uid")
Avatar billede busschou Praktikant
23. maj 2005 - 22:26 #3
hvis topmenuid er et tal i tabellen så skal der endvidere ikke plinger ' omkring
altså
--
SQLundermenu = "SELECT * FROM undermenu WHERE topmenuid="&uid
Avatar billede nielle Nybegynder
23. maj 2005 - 22:26 #4
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 %>
Avatar billede martin86 Nybegynder
23. maj 2005 - 22:27 #5
det ændrede ikke i noget ....
Avatar billede nielle Nybegynder
23. maj 2005 - 22:28 #6
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&"'"
Avatar billede martin86 Nybegynder
23. maj 2005 - 22:28 #7
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
Avatar billede busschou Praktikant
23. maj 2005 - 22:29 #8
prøv fjerne plingerne som sagt
Avatar billede nielle Nybegynder
23. maj 2005 - 22:29 #9
Too late...

Nå, men lad os se din nuværende kode.
Avatar billede martin86 Nybegynder
23. maj 2005 - 22:30 #10
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%>
Avatar billede busschou Praktikant
23. maj 2005 - 22:30 #11
<%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%>
Avatar billede busschou Praktikant
23. maj 2005 - 22:31 #12
sådan..uden plinger ;o)
Avatar billede busschou Praktikant
23. maj 2005 - 22:33 #13
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)
Avatar billede martin86 Nybegynder
23. maj 2005 - 22:34 #14
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
Avatar billede busschou Praktikant
23. maj 2005 - 22:35 #15
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%>
Avatar billede nielle Nybegynder
23. maj 2005 - 22:35 #16
Der mangler også noget i din href, nemlig selve URLet - men det har nu ikke noget med fejlen at gøre.
Avatar billede martin86 Nybegynder
23. maj 2005 - 22:37 #17
det er ligemeget eftersom jeg jo bare linker på et andet sted i samme dokument
Avatar billede busschou Praktikant
23. maj 2005 - 22:38 #18
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)
Avatar billede nielle Nybegynder
23. maj 2005 - 22:39 #19
Er du helt sikker på at det skal være "querystring":

uid = request.querystring("uid")

- og ikke :

uid = Request.Form("uid")
Avatar billede nielle Nybegynder
23. maj 2005 - 22:40 #20
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
%>
Avatar billede busschou Praktikant
23. maj 2005 - 22:40 #21
nielle >> du har selv kigget på href´en ik ;o)... det må vel siges at være en querystring :o)
Avatar billede busschou Praktikant
23. maj 2005 - 22:41 #22
nielle >> debug som skrevet 22:35:12 ... hmm sover vi...hehe
Avatar billede nielle Nybegynder
23. maj 2005 - 22:42 #23
...og burde det ikke være:

show=<% =undermenu("uid") %>

med et lille u foran "id"?
Avatar billede martin86 Nybegynder
23. maj 2005 - 22:43 #24
<%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>&nbsp;&nbsp;-&nbsp;&nbsp;
<%=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%>
Avatar billede nielle Nybegynder
23. maj 2005 - 22:43 #25
Sover. Ja. :^|

Må vist snart investere i et Pro-abonnement!
Avatar billede martin86 Nybegynder
23. maj 2005 - 22:43 #26
det er hele scriptet ....
Avatar billede busschou Praktikant
23. maj 2005 - 22:44 #27
martin86 >> og giver den ingen fejl nu når uid = 1??
Avatar billede nielle Nybegynder
23. maj 2005 - 22:44 #28
martin86> Jeg forstår ikke... hvad går den sidste halv del af 23/05-2005 22:43:06 ud på?
Avatar billede busschou Praktikant
23. maj 2005 - 22:45 #29
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 ?
Avatar billede martin86 Nybegynder
23. maj 2005 - 22:46 #30
jo den giver stadig fejl .... det er det mit problem er ....
Avatar billede busschou Praktikant
23. maj 2005 - 22:47 #31
giver en af disse to så også fejl?
SQLundermenu = "SELECT * FROM undermenu WHERE topmenuid=1"
eller
SQLundermenu = "SELECT * FROM undermenu WHERE topmenuid='1'"
Avatar billede martin86 Nybegynder
23. maj 2005 - 22:48 #32
SQLundermenu = "SELECT * FROM undermenu WHERE topmenuid='1'"

den overstående viser det rigtige resultat
Avatar billede busschou Praktikant
23. maj 2005 - 22:49 #33
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>&nbsp;&nbsp;-&nbsp;&nbsp;
<%=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%>
Avatar billede martin86 Nybegynder
23. maj 2005 - 22:53 #34
<%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
Avatar billede martin86 Nybegynder
23. maj 2005 - 22:54 #35
må jeg bede om et svar busschou
Avatar billede busschou Praktikant
23. maj 2005 - 22:54 #36
det er jo fuldstændig magen til det du skrev 22:30:19 hehe
Avatar billede busschou Praktikant
23. maj 2005 - 22:55 #37
ja ok da :o).. men godt det virker
Avatar billede martin86 Nybegynder
23. maj 2005 - 23:29 #38
åbenbart ikke ... ellers vilel det være mærkeligt i hvert fald... tka for hjælpen

LUKKER
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester