/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Problem med maxrecords
Fra : thagemann89


Dato : 07-08-05 13:14

Ok, et lille problem igen, denne gang prøver jeg at få sat
maxrecords som skal vises til at være 5, men det giver en del
problemer...

Fejl:
ADODB.Recordset error '800a0bcd'

Either BOF or EOF is True, or the current record has been
deleted. Requested operation requires a current record.

/nybojco/home.asp, line 211


Linie 211: nyheder.Movenext

Kode:
<%
Set nyheder = Server.CreateObject("ADODB.Recordset")
nyheder.maxrecords=4
nyheder.Open "SELECT * FROM nyheder", Conn

for i=0 to 4

StrSQL = "Select dato, overskrift FROM nyheder ORDER BY id Desc"
Set rs = Conn.Execute(StrSQL)

Do
%>
<p style="word-spacing: 1px; margin-left: 10; margin-top: 1px;
margin-bottom: 1px">
<%
Response.Write rs("dato") & "<br>"
Response.Write rs("overskrift") & "<br>"
Response.write "</p>"
Response.write "<br>"


nyheder.Movenext

Loop

next

%>


Mvh
Thomas Hagemann

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Tomasz Otap (07-08-2005)
Kommentar
Fra : Tomasz Otap


Dato : 07-08-05 15:00

thagemann89 proclaimed as follows:
> Fejl:
> ADODB.Recordset error '800a0bcd'
>
> Either BOF or EOF is True, or the current record has been
> deleted. Requested operation requires a current record.
>
> Do
> [snip]
> nyheder.Movenext
>
> Loop

Din do-loop løkke har ingen betingelse. Derfor er den reelt sat til at
køre i al uendelighed. I praksis løber den, indtil den når den sidste
record i din recordset. Så returnerer den fejl, eftersom der er ikke
flere records at hente (EOF - End Of File - er opnået).

Hvis du vil udskrive alle records i din recordset, kan du f.eks. bruge
en WHILE-WEND løkke, der kører indtil EOF rammes:
---------
while not rs.eof
   %>
   <p style="word-spacing: 1px; margin-left: 10; margin-top: 1px;
   margin-bottom: 1px">
   <%
   Response.Write rs("dato") & "<br>"
   Response.Write rs("overskrift") & "<br>"
   Response.write "</p>"
   Response.write "<br>"

   rs.Movenext
wend
----------

Da betingelsen i en WHILE-WEND checkes inden løkken udføres, får du
heller ikke fejl, hvis din recordset er tom fra starten (ingen værdier
fundet).

Din kode er også lidt underligt: du åbner to recordset, hvorefter du
forsøger at gennemløbe den første af dem med i=0 to 4. For hver
iteration henter du så alle nyheder i databasen, hvorefter du fremviser
den første post i din ANDEN recordset, men flytter cursoren frem i din
FØRSTE recordset (nyheder.movenext). Din anden recordset forbliver
uændret, så ved næste iteration fremvises samme information igen.

Forsøger du at fremvise top 5 nyheder? Det er vel bare:

-----------
Set nyheder = Server.CreateObject("ADODB.Recordset")
nyheder.maxrecords=5
rs.Open "SELECT * FROM nyheder order by id desc", Conn

while not rs.eof
   %>
   <p style="word-spacing: 1px; margin-left: 10; margin-top: 1px;
   margin-bottom: 1px">
   <%
   Response.Write rs("dato") & "<br>"
   Response.Write rs("overskrift") & "<br>"
   Response.write "</p>"
   Response.write "<br>"
   rs.Movenext
wend
rs.close
-----------

t

--
Aequitas sequitur funera

thagemann89 (07-08-2005)
Kommentar
Fra : thagemann89


Dato : 07-08-05 15:24

&gt; Da betingelsen i en WHILE-WEND checkes inden løkken udføres, får du
&gt; heller ikke fejl, hvis din recordset er tom fra starten (ingen
værdier
&gt; fundet).
&gt;
&gt; Din kode er også lidt underligt: du åbner to recordset, hvorefter du
&gt; forsøger at gennemløbe den første af dem med i=0 to 4. For hver
&gt; iteration henter du så alle nyheder i databasen, hvorefter du
fremviser
&gt; den første post i din ANDEN recordset, men flytter cursoren frem i
din
&gt; FØRSTE recordset (nyheder.movenext). Din anden recordset forbliver
&gt; uændret, så ved næste iteration fremvises samme information igen.
-> Nu det siger det kan jeg da godt se det ja :/

&gt; Forsøger du at fremvise top 5 nyheder? Det er vel bare:
-> Yep, eller kun overskrifterne fra dem :)

&gt; Set nyheder = Server.CreateObject("ADODB.Recordset")
&gt; nyheder.maxrecords=5
&gt; rs.Open "SELECT * FROM nyheder order by id desc", Conn
&gt;
&gt; while not rs.eof
&gt;    %>
>    <p style="word-spacing: 1px; margin-left: 10; margin-top: 1px;
>    margin-bottom: 1px">
>    <%
>    Response.Write rs("dato") & "<br>"
>    Response.Write rs("overskrift") & "<br>"
>    Response.write "</p>"
>    Response.write "<br>"
>    rs.Movenext
> wend
> rs.close

-> Det har jeg så prøvet nu, men får fejlen:

Microsoft VBScript runtime error '800a01a8'

Object required: ''

/nybojco/home.asp, line 194


Linie 194: rs.Open "SELECT * FROM nyheder order by id desc", Conn

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Tomasz Otap (07-08-2005)
Kommentar
Fra : Tomasz Otap


Dato : 07-08-05 16:11

thagemann89 proclaimed as follows:
> -> Det har jeg så prøvet nu, men får fejlen:
>
> Microsoft VBScript runtime error '800a01a8'
>
> Object required: ''
>
> /nybojco/home.asp, line 194
>
>
> Linie 194: rs.Open "SELECT * FROM nyheder order by id desc", Conn

Det skal naturligvis også være rs, du opretter og åbner, ikke nyheder.
For hurtig cut'n paste.

Set rs = Server.CreateObject("ADODB.Recordset")
rs.maxrecords=5
rs.Open "SELECT * FROM nyheder order by id desc", Conn

t

--
Aequitas sequitur funera

thagemann89 (07-08-2005)
Kommentar
Fra : thagemann89


Dato : 07-08-05 17:34

> Set rs = Server.CreateObject("ADODB.Recordset")
> rs.maxrecords=5
> rs.Open "SELECT * FROM nyheder order by id desc", Conn

ahh do'h, sorry :P men tusinde tak!

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Dj Uncas (10-08-2005)
Kommentar
Fra : Dj Uncas


Dato : 10-08-05 18:31


"thagemann89" <thomas@intelligent-design.dk> skrev i en meddelelse
news:42f63805$0$18649$14726298@news.sunsite.dk...
>> Set rs = Server.CreateObject("ADODB.Recordset")
>> rs.maxrecords=5
>> rs.Open "SELECT * FROM nyheder order by id desc", Conn

Du kan også gøre det mere enkelt, ved at udvælge et antal direkte i SQL'en:

MS Access: SELECT TOP 5 * FROM nyheder ORDER BY id DESC
MySQL: SELECT * FROM nyheder ORDER BY id DESC LIMIT 0,5



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste