Här försöker du öppna recordsetet varje varv i loopen ......
*rs.Open SQL2, Connect, adOpenStatic, adLockOptimistic
då måste du ju stänga det efter varje varv också !!!!!!
Fattar du vad jag menar !
13 svar · 216 visningar · startad av Gein
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("knivbas.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Set rs = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT bt.namn, bt.id as tid, bg.id, bg.titel FROM bilder_typ bt, bilder_grupp bg WHERE bt.id = bg.sektion ORDER BY bg.sektion ASC"
RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic
lasttyp = ""
Do until RecSet.EOF
if not lasttyp = RecSet("tid") then
lasttyp = RecSet("tid")
%>
<br/><b><%=RecSet("namn")%></b><br/>
<%
end if
SQL2 = "SELECT count(*) as totalt FROM bilder WHERE gid='"&RecSet("id")&"'"
*rs.Open SQL2, Connect, adOpenStatic, adLockOptimistic
'Response.Write SQL2
%>
<a href="pics_more.asp?gid=<%=RecSet("id")%>"><%=RecSet("titel")%></a> - (<%'=rs("totalt")%> bilder)<br/>
<%
RecSet.MoveNext
Loop
RecSet.Close
rs.Close
Connect.Close
Set Connect = Nothing
Felmeddelande på den rad som jag har markerat med en *.
Feltyp:
ADODB.Recordset (0x800A0E79)
Åtgärden är inte tillåten när objektet är öppet.
/pics.asp, line 73
vad är felet?
Här försöker du öppna recordsetet varje varv i loopen ......
*rs.Open SQL2, Connect, adOpenStatic, adLockOptimistic
då måste du ju stänga det efter varje varv också !!!!!!
Fattar du vad jag menar !
ahaaa, ja just ja!
va dum jag är, jag provar!
Jag tror att du inte skall lägga detta i loopen:
SQL2 = "SELECT count(*) as totalt FROM bilder WHERE gid='"&RecSet("id")&"'"
*rs.Open SQL2, Connect, adOpenStatic, adLockOptimistic
'Response.Write SQL2
MVH Jesper
funkade såklart utmärkt!
Tackar!
Jesper T skrev:
Jag tror att du inte skall lägga detta i loopen:
SQL2 = "SELECT count(*) as totalt FROM bilder WHERE gid='"&RecSet("id")&"'" *rs.Open SQL2, Connect, adOpenStatic, adLockOptimistic 'Response.Write SQL2MVH Jesper
jo, det ska vara innanför loopen
Fast hur som helst vore det väl onekligen bäst med en join mellan databaserna och hämta allt i en öppning, om det är möjligt, i stället för att öppna o stänga som en liten tok.
Fråga dock inte mig hur den joinen skall se ut...
Jag vet inte exakt hur join funkar, men det är väl att man kopplar ihop tabeller, och det har jag ju redan gjort.
Jag tror jag är tvungen att öppna o stänga "som en tok" precis som jag gör just nu faktiskt
Ja, men se det har du ju!
Njo, det jag tänkt var att kan man inte få reda på antalet bilder (din count) i den första frågan direkt?
Men som sagt, det kanske inte går och hur som helst vet inte jag hur det skulle gå till. Bara en tanke.
funkar det inte med recset.recordcount i loopen?
Gör en skalär subselect, vetja.
SQL = "SELECT bt.namn, bt.id as tid, bg.id, bg.titel, " & _
" (SELECT count(*) FROM bilder WHERE gid=bg.id ) as totalt " & _
" FROM bilder_typ bt, bilder_grupp bg " & _
" WHERE bt.id = bg.sektion " & _
" ORDER BY bg.sektion ASC"
Borde gå bra om du inte har soppat till det med datatyperna
Har dessa två, gid och bg.id, samma datatyp?
skalär subselect
Visste inte äns att ordet existerade...