Avatar billede hinkesten Praktikant
10. maj 2012 - 17:53 Der er 13 kommentarer og
1 løsning

ASP: simpel syntaks fejl

Hej

Jeg er ikke så skarp på ASP syntakser og har derfor flg. problem:

strSQL = "SELECT * FROM menukort ORDER BY ID WHERE kategori= & requesty.querystring("site") &"

giver mig flg. fejl:

Microsoft VBScript compilation error '800a0401'

Expected end of statement

/dnh/default.asp, line 64

strSQL = "Select * from menukort where (kategori LIKE '& request.querystring("site") &')"
------------------------------------------------------------------------------^

Hvad går galt?

Håber der er en venlig sjæl som vil hjælpe

På forhånd tak!
Avatar billede claes57 Ekspert
10. maj 2012 - 18:02 #1
hvis ketagori er et tal i databasen:
strSQL = "SELECT * FROM menukort ORDER BY ID WHERE kategori=" & requesty.querystring("site")

er det et tekstfelt, så skal der ' omkring
strSQL = "SELECT * FROM menukort ORDER BY ID WHERE kategori='" & requesty.querystring("site") & "'"
Avatar billede hinkesten Praktikant
10. maj 2012 - 18:09 #2
Det er et tekstfelt - jeg får flg. fejl efter indsættelse af dit forslag:

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

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'ID WHERE kategori='kaffekort''.

/dnh/default.asp, line 65

Har du en idé til hvad dette kan skyldes?

Linie 65 er:

Set rs = Conn.Execute(strSQL)

---------------

Jeg har klippet den væsentlige kode ud:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database.mdb")
Conn.Open DSN

strSQL = "SELECT * FROM menukort ORDER BY ID WHERE kategori='" & request.querystring("site") & "'"
Set rs = Conn.Execute(strSQL)

Do

Response.Write Navn

Rs.MoveNext
Loop While Not rs.EOF
Conn.Close
Set Conn = Nothing
%>
Avatar billede claes57 Ekspert
10. maj 2012 - 18:24 #3
WHERE kategori='kaffekort''.
der er en ' for meget til sidst
er du sikker på, at du ikke får en
strSQL = strSQL & "'"
undervejs inden kaldet?
Avatar billede hinkesten Praktikant
10. maj 2012 - 18:29 #4
Jeg er ikke helt sikker på hvad du spørger om. Der er brugt en include fil længere oppe som kalder til samme database, men denne forbindelse er lukket igen?!

Hvilket ' kan jeg fjerne så?

Ja, du må undskylde - men jeg er ikke så skrap som ønsket :-)
Avatar billede claes57 Ekspert
10. maj 2012 - 18:32 #5
du kan fjerne en ved at rette fra
strSQL = "SELECT * FROM menukort ORDER BY ID WHERE kategori='" & request.querystring("site") & "'"
til
strSQL = "SELECT * FROM menukort ORDER BY ID WHERE kategori='" & request.querystring("site")
Avatar billede hinkesten Praktikant
10. maj 2012 - 18:40 #6
Okay - nu får jeg flg. fejl:

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

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'ID WHERE kategori='kaffekort'.

/dnh/default.asp, line 73

Linie 73:

Set rs = Conn.Execute(strSQL)

:-(
Avatar billede arne_v Ekspert
10. maj 2012 - 18:42 #7
WHERE skal foer ORDER BY
Avatar billede claes57 Ekspert
10. maj 2012 - 18:47 #8
ergo
strSQL = "SELECT * FROM menukort WHERE kategori='" & request.querystring("site") & "' ORDER BY ID"
Avatar billede hinkesten Praktikant
10. maj 2012 - 18:50 #9
TUSIND tak I to. Vil I lave et svar - tænker I kan deles om points?
Avatar billede claes57 Ekspert
10. maj 2012 - 19:16 #10
det var så arne_v, der kom med løsningen...
Avatar billede arne_v Ekspert
10. maj 2012 - 19:25 #11
svar
Avatar billede arne_v Ekspert
10. maj 2012 - 19:26 #12
men jeg mener da ogsaa at det var galt med dapperne i den originale kode
Avatar billede hinkesten Praktikant
10. maj 2012 - 20:14 #13
Uanset hvad, så skal I have mange for jeres hjælp! :-)
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