Det finns alltså inga poster i de kolumnerna...
Du får köra:
if rs.eof then
Response.Write "Inga poster"
Else
'Loopa ut
End If
15 svar · 444 visningar · startad av diablo
Tjena! ..
Vill lista upp spel ur en db som jag har, men det vägrar fungera som det ska!
<%
Set Connect = Server.CreateObject("ADODB.Connection")
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("data/data.mdb")
Connect.Open ConnectString
Set game = Request.QueryString("show")
showGames = "SELECT * FROM "& game &" "
Set RS = Connect.Execute(showGames)
countGames = "SELECT COUNT(id) AS antal FROM "& game &" "
Set RS_C = Connect.Execute(countGames)
%>
Så ser koden ut som jag använder mig av när jag ska hämta spelen ur databasen!
När jag öppnar sidan, så skickar jag med en sträng typ: "games.asp?show=flipper", men ibland så blir det felet:
Microsoft JET Database Engine fel '80040e14'
Syntaxfel i FROM-instruktion.
/test/games.asp, rad 12
eller också så blir det:
ADODB.Field fel '80020009'
Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats; åtgärden som programmet begärt kräver en aktuell post.
?
Varför blir det så?
Vissa kategorier som jag vill lista upp funkar. Alltså, jag tycker att om det är nåt som är knas så borde det ju bli samma fel hela tiden men det blir det inte! Vissa funkar juh till och med!
Det finns alltså inga poster i de kolumnerna...
Du får köra:
if rs.eof then
Response.Write "Inga poster"
Else
'Loopa ut
End If
Jo jag har gjort så här:
<% If RS_C("antal") = 0 Then %>
<font face="verdana" size="1">
<strong> Kategori: </strong> <%= RS("category") %> <br />
<strong> Antal: </strong> 0 </font> <br /><br />
<br />
<%
RS.Close
Set RS = Nothing
RS_C.Close
Set RS_C = Nothing
Connect.Close
Set Connect = Nothing
%>
<% Else %>
Men det hjälper juh inte!
Det blir i alla fall samma fel!
Vet ju inte riktigt ifall det är samma sak men jag är ju ingen expert...
Jag vet inte heller, men om jag gör på ditt sätt så kommer den ju till slut att skriva ut "Inga poster", eftersom när jag loopat igenom hela databasen så blir den ju EOF. eller tänker jag fel?
Den kollar ju ifall det finns några poster... Gör det inte det så skriver den "Det finns..." annars så börjar den ju loopa tills det tar slut!
Ja just det, jag som tänkte fel! ..
Ska testa det!
Får det fortfarande inte att fungera! Det känns ju som att det är väldigt simpelt att kolla om det är tomt i db:n, men jag kommer inte på nåt mer att testa! hjäälp!
får du alltså syntax-fel?
skriv ut sql-frågan då med response.write så kan man kanske se vad som är paj.
Nää då, syntax felet ordnade sig, de verkade som om man inte fick ha en tabell som heter "action", bytte bara namn på den så funkade det! ..
Problemet nu är om det är helt tomt i databasen så vill jag skriva ut det, som det är nu så står det:
ADODB.Field fel '80020009'
Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats; åtgärden som programmet begärt kräver en aktuell post.
?
hehe, okej!
<%
Set Connect = Server.CreateObject("ADODB.Connection")
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("data/data.mdb")
Connect.Open ConnectString
Set game = Request.QueryString("show")
showGames = "SELECT * FROM "& game &" "
Set RS = Connect.Execute(showGames)
countGames = "SELECT COUNT(id) AS antal FROM "& game &" "
Set RS_C = Connect.Execute(countGames)
%>
<html>
<head>
</head>
<body bgcolor="#FFFFFF" background="pics/bgbig.gif">
<% If RS_C("antal") = 0 Then %>
<font face="verdana" size="1">
<strong> Kategori: </strong> <%= RS("category") %> <br />
<strong> Antal: </strong> 0 </font> <br /><br />
<br />
<%
RS.Close
Set RS = Nothing
RS_C.Close
Set RS_C = Nothing
Connect.Close
Set Connect = Nothing
%>
<% Else %>
<font face="verdana" size="1">
<strong> Kategori: </strong> <%= RS("category") %> <br />
<strong> Antal: </strong> <%= RS_C("antal") %> </font> <br /><br />
<div align="center">
<table border="0" cellspacing="0" cellpadding="0">
<% Do until RS.EOF
counter = counter + 1
If counter Mod 2 = 0 then
color = "#FCFCF3"
Else
color = ""
End If
%>
<tr>
<td width="120" bgcolor="<%= color %>"><font face="verdana" size="1"><a href="<%= RS("path") %>"><%= RS("name") %></a></font></td>
<td width="50" bgcolor="<%= color %>" align="right"><font face="verdana" size="1" color="#606060"><%= RS("size") %></font></td>
<td width="20" bgcolor="<%= color %>"> </td>
<td width="170" bgcolor="<%= color %>" align="right"><a href="<%= RS("path") %>">Info</a></td>
</tr>
<% RS.MoveNext
Loop
%>
</table>
</div>
<br />
<% End If %>
</td>
</tr>
</table>
</body>
</html>
<%
RS.Close
Set RS = Nothing
RS_C.Close
Set RS_C = Nothing
Connect.Close
Set Connect = Nothing
%>
då får inte veta vilken rad i koden som levererar felmeddelandet?
<% If RS_C("antal") = 0 Then %>
<font face="verdana" size="1">
<strong> Kategori: </strong> <%= RS("category") %> <br />
<strong> Antal: </strong> 0 </font> <br /><br />
<br />
Om RS_C("antal") är 0 så är ju RS tomt, men du försöker ändå skriva ut RS("category") inom detta if-block.
hehe, ja du ser!
Tack så mycket!