Jag har två DIV:ar på min sida där jag skulle vilja loopa två olika sql-satser, till vänster skulle jag vilja loopa topp-5 från en databas, och till höger resten.
Har provat med:
sSQL="SELECT TOP 5 * FROM texter WHERE content = '"& content &"' ORDER BY datum DESC"
sSQL2="SELECT FROM texter WHERE ID NOT IN (SELECT TOP 5 ID FROM texter ORDER BY datum DESC)
Om jag nu, mot förmodan skulle få sql-satsen att funka, går det då att skriva ut dom med två olika loopar, och isf hur i hela friden skulle det då se ut???
Att gora loopar i varandra har jag fatt lara mig att det ar inte bra!! Men det gar, men blir prestandakravande... fragan ar det om det inte gar att gora nagon sorts kombination i samma sql? jag vet ej
Mitt största bekymmer är egentligen att jag får en bild som också loopas i den högra div:en, det är bl.a. därför jag pysslar med detta.
Just nu verkar det iaf vara den andra sql-satsen den klagar på...
:-(
Att gora loopar i varandra har jag fatt lara mig att det ar inte bra!!
Sant crisse, men jag tror du missuppfattar hans fråga lite. :)
Du har egentligen inte något annat alternativ än att skapa två olika recordset och sedan använda de vanliga metoderna för visning på respektive datamängd.
sSQL="SELECT TOP 5 * FROM texter WHERE content = '"& content &"' ORDER BY datum DESC"
sSQL2="SELECT FROM texter WHERE ID NOT IN (SELECT TOP 5 ID FROM texter ORDER BY datum DESC)
set rs = conn.execute(sSQL)
set rs2 = conn.execute(sSQL2)
if not rs.eof then
do until rs.eof
response.write rs(0) & "<br>"
rs.movenext
loop
end if
if not rs2.eof then
do until rs2.eof
response.write rs2(0) & "<br>"
rs2.movenext
loop
end if
set rs = nothing
set rs2 = nothing
Det löser sig, sa han som sket i vasken...
Fast kanske ändå inte!
Hade glömt öppna ett ADODB.Recordset för rs2... stryk skulle jag ha minsann.
Men nu klagar sidan på själva SQL-satsen igen, har provat ett otal varianter, just nu:
sSQL2="SELECT FROM texter WHERE id NOT IN (SELECT TOP 3 id FROM texter ORDER BY datum DESC)"
Även:
sSQL2="SELECT FROM texter WHERE content = '"& content &"' AND ID NOT IN (SELECT TOP 3 id FROM texter WHERE content = '"& content &"' ORDER BY datum DESC)"
men får följande felmess:
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'
[Microsoft][Drivrutin för ODBC Microsoft Access] SELECT-uttrycket innehåller ett reserverat ord eller argument som antingen är felstavat eller utelämnat, eller så är skiljetecknen felaktigt använda.
sSQL2="SELECT FROM [texter] WHERE id NOT IN (SELECT TOP 3 id FROM [texter] ORDER BY [datum] DESC)"
sSQL2="SELECT FROM [texter] WHERE [content] = '"& content &"' AND ID NOT IN (SELECT TOP 3 id FROM [texter] WHERE [content] = '"& content &"' ORDER BY [datum] DESC)"
Är lite skeptisk till att det skulle vara det felet, men har iaf klamrat båda sql-satserna nu, postar lite kod få se om nåt av det kan bringa lite klarhet!
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
Set rs2 = Server.CreateObject("ADODB.Recordset")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\fjallsaker\databas\fjallsaker.mdb"
content=Request.Querystring("content")
sSQL="SELECT TOP 3 * FROM [texter] WHERE [content] = '"& content &"' ORDER BY [datum] DESC"
sSQL2="SELECT FROM [texter] WHERE [content] = '"& content &"' AND ID NOT IN (SELECT TOP 3 id FROM [texter] WHERE [content] = '"& content &"' ORDER BY [datum] DESC)"
%>
<img src="bilder/gfx/<%=rs("bild")%>.gif">
<%
If content = "nyhet" then
'*********************************************************************
'Gör allt som står härifrån och ner om det är nyhet som efterfrågas...
'*********************************************************************
rs.Open sSQL, Conn
Do While Not rs.EOF
%>
<div id="left">
<p span style="margin-top: 0px"><b><%=rs("datum")%></b></span></p>
<p class="blue18"><%=rs("rubrik")%></p>
<p class="ingress"><%=rs("ingress")%></p>
<p><%=rs("texter")%></p>
<p><%=rs("forfattare")%></p>
<p><hr width="100%"></p>
</div>
<%
rs.MoveNext
Loop
rs.Close
%>
<div id="right">
<img src="bilder/gfx/rubrik_arkiv.gif" alt="rubrikbild arkiv" width="244" height="60" hspace="0" vspace="0">
<p><b><%=rs2("datum")%></b></p>
<p class="rubliten10fet"><%=rs2("rubrik")%></p>
<p><hr width="100%"></p>
</div>
<%
'*****************************************
'Här slutar if-satsen som gällde nyheterna
'*****************************************
Får följande meddelande:
ADODB.Recordset fel '800a0cc1'
Item cannot be found in the collection corresponding to the requested name or ordinal.
Är du säker på att det felmeddelandet kommer från raderna med SQL-satserna på? Det kan komma från någon av dina anrop mot recordset:et längre ner, alltså när du skriver ut det.