Slettet bruger
07. juli 2002 - 00:49
Der er
34 kommentarer og 1 løsning
The SQL is taking fire need asistance!
Jeg har en spil side hvor jeg har anmeldeser på, men når jeg vil se oversigten over alle artikler får jeg denne fejl: Microsoft JET Database Engine error '80040e10' No value given for one or more required parameters. /reviews.asp, line 9 Min connection statements ser sådan ud: <% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sti & "" SQLstmt = "SELECT * FROM views WHERE Type = 'review' ORDER BY " & Request.Querystring("System") Conn.Execute (SQLstmt) Set rs = Conn.Execute(SQLstmt) %> Jeg har kigget på den 1000 gange og kan ikke finde fejlen kan I hjælpe?
Annonceindlæg fra Computerworld
Slettet bruger
07. juli 2002 - 01:01
#2
Prøv at udskrive din query. <% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sti & "" SQLstmt = "SELECT * FROM views WHERE Type = 'review' ORDER BY " & Request.Querystring("System") Response.write SQLstmt 'Conn.Execute (SQLstmt) 'Set rs = Conn.Execute(SQLstmt) %>
Slettet bruger
07. juli 2002 - 01:14
#3
Når jeg udskriver den kommer den til at se sådan ud: SELECT * FROM views WHERE Type = 'review' ORDER BY n64 Jeg kan alså ikke se noget galt
bare lige for at være sikker: variablen sti er defineret ikke også?
Slettet bruger
07. juli 2002 - 01:18
#5
Jo
Slettet bruger
07. juli 2002 - 01:18
#6
Den er defineret i et include ;)
Slettet bruger
07. juli 2002 - 01:20
#7
Bruger du Access 2000?
Slettet bruger
07. juli 2002 - 01:46
#8
Jeg bruger den Jet string som du ser, men det er en Access 2002 Database, hele denne statement virkede i min sidste version af mit Review system
Slettet bruger
07. juli 2002 - 01:46
#9
Kan det være noget med ' ' ?
07. juli 2002 - 01:51
#10
og n64 er et felt i databasen? I så fald skal der ikke flere apostroffer ind
Slettet bruger
07. juli 2002 - 01:57
#11
Min database har et felt der hedder system og i det bliver der added N64 eller andre maskin navne, da den skal sortere dem derefter, men det kan da være det er noget der!
07. juli 2002 - 02:03
#12
Du kan kun sortere efter et felt, og ikke en indhold af en post. Du kan så også vælge dem, hvor system er lig med n64. Hvis du skal sortere det på en måde, skal du vel først vælge dem, hvor system er n64, udskrive dem, og så vælge dem, hvor system er lig med noget andet o. s. v. Prøv lige at forklar, hvad din sql-sætning skal vælge
Slettet bruger
07. juli 2002 - 02:03
#13
Det er fordi hvis at f.eks. Request.Querystring("System") er lig med N64 så skal ASP kigge på alt data der er reviews (Via type) incl. så skal den kun udtage det system der er i Querystring f.eks. GC = GameCube
07. juli 2002 - 02:05
#14
aha, så prøv med denne i stedet: SQLstmt = "SELECT * FROM views WHERE Type = 'review' AND system = '" & Request.Querystring("System") & "'"
07. juli 2002 - 11:54
#15
Type er reserveret ord i SQL så du skal bruge et andet navn for kolonnen Type eller du skal sætte [] i SQL-sætningen [type]:
SQLstmt = "SELECT * FROM views WHERE [Type] = 'review' ORDER BY " & Request.Querystring("System")
Her er en liste med reserverede ord i Access 2000:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q209187
Slettet bruger
07. juli 2002 - 21:48
#16
Denne virker: SQLstmt = "SELECT * FROM views WHERE Type = 'review' AND system = '" & Request.Querystring("System") & "'" , men når jeg går ind i en kategori hvor der er indlagt artikler viser den godt nok oversigten over dem, men skriver samtidigt nedenunder: ADODB.Field error '80020009' Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record. /reviews.asp, line 0 Kan I se denne fejl?
07. juli 2002 - 23:10
#17
Det er fordi, du prøver at få fat i en post i databasen, der ikke er der. Hvilken slags løkke bruger du, og hvilke kriterier sætter du for den?
Slettet bruger
08. juli 2002 - 00:02
#18
Her er hele min sektion der viser oversigten: <table border="0" width="100%" cellspacing="1"> <% if rs.bof then %> <tr> <td width="60%"><font face="Verdana" size="1">Der er endnu ingen reviews i denne kategori</a></font></td> </tr> <% else if Request.Querystring("system") = "" then %> <tr> <td><font face="Verdana" size="1"><a href="reviews.asp?system=GB">GameBoy/Pocket/Color</a></font></td> <td><font face="Verdana" size="1"><a href="reviews.asp?system=GBA">GameBoy Advance</a></font></td> </tr> <tr> <td><font face="Verdana" size="1"><a href="reviews.asp?system=NES">NES</a></font></td> <td><font face="Verdana" size="1"><a href="reviews.asp?system=SNES">Super Nintendo</a></font></td> </tr> <tr> <td><font face="Verdana" size="1"><a href="reviews.asp?system=N64">Nintendo 64</a></font></td> <td><font face="Verdana" size="1"><a href="reviews.asp?system=GC">Nintendo GameCube</a></font></td> </tr> <% else Do %> <tr> <td width="60%"><font face="Verdana" size="1"><a href="vis_view.asp?id=<% =rs("ID") %>"><% =rs("Titel") %></a></font></td> </tr> <% rs.MoveNext LOOP rs.Close Conn.Close Set Conn = nothing Set SQLstmt = nothing end if end if %>
08. juli 2002 - 11:53
#19
prøv at udskifte linien med loop med det her: LOOP While NOT rs.EOF så stopper den når der ikke er flere poster i tabellen.
Slettet bruger
08. juli 2002 - 12:43
#20
Når jeg har udskiftet linjen får jeg denne fejl: Microsoft VBScript compilation error '800a0401' Expected end of statement /reviews.asp, line 102 LOOP WHILE NOT rs.EOF -----^
08. juli 2002 - 12:53
#21
det burde ellers virke. prøv dog med det her og se, om det virker: loop until rs.EOF
Slettet bruger
08. juli 2002 - 13:04
#22
Nu får jeg en ligende fejl: Microsoft VBScript compilation error '800a0401' Expected end of statement /reviews.asp, line 102 LOOP UNTIL rs.EOF -----^
08. juli 2002 - 13:16
#23
det burde skam virke, men vi kan vel prøve andre metoder. f. eks. dette: <% rs.MoveNext If rs.EOF Then stop = "ja" End IF LOOP While stop <> "ja" rs.Close
Slettet bruger
08. juli 2002 - 13:23
#24
Var det ikke en idé hvis at jeg postede hele min fil?
08. juli 2002 - 13:26
#25
jo, gør det
Slettet bruger
08. juli 2002 - 13:29
#26
Fandt lige fejlen: Jeg havde: DO WHILE NOT rs.EOF Samtidig med: LOOP UNTIL rs.EOF Nu viser den min oversigt hel fint, men når jeg kommer til det sted hvor jeg vil vælge kategori får jeg stadig denne fejl: Microsoft VBScript runtime error '800a01a8' Object required: '' /reviews.asp, line 76 Linje 76 er: <% if rs.BOF then %>
Slettet bruger
08. juli 2002 - 13:31
#27
Her er hele filen: <!--#include file="functions.asp"--> <% if Request.Querystring("System") <> "" then %> <% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sti & "" SQLstmt = "SELECT * FROM views WHERE Type = 'review' AND system = '" & Request.Querystring("System") & "'" Response.Write SQLstmt Conn.Execute (SQLstmt) Set rs = Conn.Execute(SQLstmt) %> <% end if %> <html> <head> <title></title> <% call style() %> <% call meta() %> </head> <!-- Hvis du stjæler vores design eller dele af det, kan du være sikker på at din side bliver lukket!! --> <body> <% call screenshot() %> <div align="center"><img src="images/topbanner.jpg" width="748" height="75" border="1"> <table width="752" border="0" cellspacing="1" cellpadding="0"> <tr> <td width="479"><% call topbanner() %> </td> <td width="266"></td> </tr> </table> <table cellSpacing="0" cellPadding="0" width="750" border="0" bordercolor="#000000"> <center> <tbody> </center> <tr> <td bgColor="#000000"> <div align="center"> <table cellSpacing="1" cellPadding="0" width="100%" border="0"> <tr> <td width="100%" bgcolor="#FFFFFF" height="13"> <div align="center"></div> </td> </tr> <center> <tbody> <tr> <td width="100%" bgColor="#ffffff" height="255"> <table width="100%" border="0" cellspacing="5" cellpadding="0" height="100%"> <tr> <td valign="top" width="140" bgcolor="#FFFFFF" height="261"> <!--#include file="menu.asp"--> </td> <td valign="top" width="403" bgcolor="#FFFFFF" height="261"> <center> </center> <div align="center"> <table cellspacing="0" cellpadding="0" width="400" border="0"> <tbody> <tr> <td width="100%" bgcolor="#000000"> <div align="center"> <table cellspacing="1" cellpadding="0" width="100%" border="0"> <tbody> <tr> <td align="middle" width="78%" bgcolor="#7494f0"> <div align="left"><center><font face="Verdana" size="2" color="white"> <b>Reviews/Retro</b></font></center></div> </td> </tr> <tr> <td bgcolor="#FFFFFF" colspan="2" height="14"> <table border="0" width="100%" cellspacing="1"> <% if rs.BOF then %> <tr> <td width="60%"><font face="Verdana" size="1">Der er endnu ingen reviews i denne kategori</a></font></td> </tr> <% else if Request.Querystring("system") = "" then %> <tr> <td><font face="Verdana" size="1"><a href="reviews.asp?system=GB">GameBoy/Pocket/Color</a></font></td> <td><font face="Verdana" size="1"><a href="reviews.asp?system=GBA">GameBoy Advance</a></font></td> </tr> <tr> <td><font face="Verdana" size="1"><a href="reviews.asp?system=NES">NES</a></font></td> <td><font face="Verdana" size="1"><a href="reviews.asp?system=SNES">Super Nintendo</a></font></td> </tr> <tr> <td><font face="Verdana" size="1"><a href="reviews.asp?system=N64">Nintendo 64</a></font></td> <td><font face="Verdana" size="1"><a href="reviews.asp?system=GC">Nintendo GameCube</a></font></td> </tr> <% else DO %> <tr> <td width="60%"><font face="Verdana" size="1"><a href="vis_view.asp?id=<% =rs("ID") %>"><% =rs("Titel") %></a></font></td> </tr> <% rs.MoveNext LOOP UNTIL rs.EOF rs.Close Conn.Close Set Conn = nothing Set SQLstmt = nothing end if end if %> </table> </td> </tr> </tbody> </table> </div> </td> </tr> </tbody> </table> </div> </td> <td valign="top" width="185" bgcolor="#FFFFFF" height="261"> <!--#include file="right-banner.asp"--> </td> </tr> </table> </td> </tr> <tr> <td width="100%" bgcolor="#FFFFFF" height="13"> <div align="center"> <table width="100%" border="0" cellspacing="2" cellpadding="0"> <tr> <td> <div align="center"><% call danbanbottom() %></div> </td> </tr> </table> </div> </td> </tr> <tr bordercolor="#000000" > <td width="100%" bgcolor="#7494F0" height="13" background="images/bottom.jpg"> <div align="center"><% call copy() %></div> </td> </tr> </center> </table> </div> </td> </tr> </table> <% call chart() %> </body> </html>
08. juli 2002 - 13:36
#28
prøv at udskifte linie 76 med: <% if rs.EOF then %>
Slettet bruger
08. juli 2002 - 14:54
#29
Har allerede prøvet
Slettet bruger
08. juli 2002 - 14:58
#30
Får stadig denne fejl: Microsoft VBScript runtime error '800a01a8' Object required: '' /reviews.asp, line 76
08. juli 2002 - 16:20
#31
Hvad står der i linie 76?
Slettet bruger
08. juli 2002 - 16:45
#32
<% if rs.BOF then %>
08. juli 2002 - 17:31
#33
lige som du har denne: Set Conn = Server.CreateObject("ADODB.Connection") Så skal du havde en: Set rs = Server.CreateObject("ADODB.Recordset")
Slettet bruger
09. juli 2002 - 00:46
#34
Jeg har denne: Set rs = Conn.Execute(SQLstmt) Hvad gør jeg der fra?
Slettet bruger
29. august 2002 - 06:18
#35
Så nu virker svinet !!!
Kurser inden for grundlæggende programmering