Een redelijk simpele uitvoering, die helemaal misgaat, maar ik kom er niet achter waarom.
Ik heb een ASP-pagina die gegevens uit een database trekt en die weergeeft in een HTML-tabel. Er zijn verschillende kolommen (het is mijn film-database): Titel, Featuring, Duur, Genre, Jaar en nog een paar dingen.
Dit doe ik het met SQL-statement SELECT * FROM Films
Dit gaat goed.
De bedoeling is dat de tabel sorteerbaar is de verschillende kolomnamen. Ten eerste moet de tabel gesorteerd zijn op titel.
Verander ik het SQL-statement echter in SELECT * FROM Films SORT BY Titel dan krijg ik deze ASP-foutmelding:
De component FROM bevat een syntaxisfout.
In de database heet de enige tabel Films (dit werkt ook gewoon in het eerste voorbeeld) en een kolom uit die tabel is Titel. De andere kolomnamen leveren overigens de zelfde foutmelding op.
What's going on?
Voor het overzicht is hier de volledige code:
Ik heb een ASP-pagina die gegevens uit een database trekt en die weergeeft in een HTML-tabel. Er zijn verschillende kolommen (het is mijn film-database): Titel, Featuring, Duur, Genre, Jaar en nog een paar dingen.
Dit doe ik het met SQL-statement SELECT * FROM Films
Dit gaat goed.
De bedoeling is dat de tabel sorteerbaar is de verschillende kolomnamen. Ten eerste moet de tabel gesorteerd zijn op titel.
Verander ik het SQL-statement echter in SELECT * FROM Films SORT BY Titel dan krijg ik deze ASP-foutmelding:
De component FROM bevat een syntaxisfout.
In de database heet de enige tabel Films (dit werkt ook gewoon in het eerste voorbeeld) en een kolom uit die tabel is Titel. De andere kolomnamen leveren overigens de zelfde foutmelding op.
What's going on?
Voor het overzicht is hier de volledige code:
<% @Language = "VBScript" %>
<!--#include virtual="/adovbs.inc"-->
<% Response.buffer = true %>
<html>
<head>
<link rel="stylesheet" href="style.css">
<title>Filmtabel weergeven</title>
</head>
<body>
<TABLE BORDER=2 CELLPADDING=1 CELLSPACING=2>
<TR>
<TD><B>Titel</B></TD>
<TD><B>Genre</B></TD>
<TD><B>Featuring</B></TD>
<TD><B>Jaar</B></TD>
<TD><B>Duur</B></TD>
<TD><B>Grootte</B></TD>
<TD><B>DVD-Rip</B></TD>
</TR>
<%
Dim rs, conn, Rij, SQLstmt
Set rs = Server.CreateObject ("ADODB.Recordset")
Set conn = Server.CreateObject ("ADODB.Connection")
conn.open = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("films.mdb") & ";"
'Hier wordt het SQL-statement gefabriceerd.
SQLstmt = "SELECT * FROM Films"
'Haal onderstaande regel weg en het werkt, alleen ongesorteerd.
SQLstmt = SQLstmt & " SORT BY Titel"
' AdOpenStatic is het cursortype. Dit heb ik recentelijk toegevoegd en daarom heb ik
' het er even uitgesloopt om troubleshooting makkelijker te maken.
'rs.open SQLstmt, conn, AdOpenStatic
'Aantal_records = rs.RecordCount
rs.open SQLstmt, conn
For Rij = 1 to 141
Response.Write "<TR>"
Response.Write "<TD><B>" & rs("titel") & "</B></TD>"
Response.Write "<TD>" & rs("genre") & "</TD>"
Response.Write "<TD>" & rs("featuring") & "</TD>"
Response.Write "<TD>" & rs("jaar") & "</TD>"
Response.Write "<TD>" & rs("duur") & "</TD>"
Response.Write "<TD>" & rs("MB") & "</TD>"
Response.Write "<TD>" & rs("DVD") & "</TD>"
Response.Write "</TR>"
rs.MoveNext
Next
%>
</TR>
</TABLE>
<%
rs.Close
Set rs = Nothing
%>
</body>
</html>
Bloed, zweet & koffie