webForumDet fria alternativet

BOF & EOF

ASP

12 svar · 590 visningar · startad av murko

Medlem sedan juni 20077 inlägg
Frågan#1

Åh gud det var längesedan man satt ner och gjorde sin egen hemsida i ASP :)

Mkt har man glömt, mkt sitter kvar, men nu har jag kört fast rejält och inget i min gamla minnesbank hjälper.

Hade en gammal sportsida som jag försökte fräsha upp. Sidan listar ett lags fem största segrar hemma och borta, men nu editerade jag det hela så att det blev per säsong.

Visade sig dock att en av säsongerna inte innehöll fem segrar, vare sig hemma eller borta, så felmeddelandet som dök upp blev då:

"
ADODB.Field fel '80020009'

Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats. Den begärda åtgärden kräver en aktuell post. "

Själva frambläddrandet av de fem matcherna ser ut så här:

<% For i=1 To 5
nummert1 = nummert1 + 1
If nummert1 Mod 2 = 0 then
color = "#F8C570"
Else
color = "#FFFFFF"
End If
%>

Har ju alltså inte angett ngt stop, om det nu skulle visa sig att laget inte ens vinner fem matcher hemma borta, vilket ju är rätt dumt när det gäller per säsong. För att sidan inte skall visa felet krävs ju att laget vinner det mesta, och det är ju rätt svårt ibland :)

Nån som kan hjälpa mig. Vore ytterst tacksamt

Medlem sedan sep. 2006867 inlägg
#2

Hej och välkommen till wF

Dessvärre så finns det inget i din loop som ropar på något record-set så felet uppkommer någon annanstans. Som koden du bifogar är skriven skulle den kunna copy-pastas in var som helst och fungera :)

Genrellt så är det bra med

do while not RS.EOF 
     .....
loop

för precis som du säger så är det ganska knasig kodning att förutsätta något man inte kan veta innan!

För mer specifik hjälp kan du väl klistra in hela koden så kan vi klura på ett smart sätt att lösa ditt problem. Ta bort lösenord etc om du har sådant där!

Medlem sedan juni 20077 inlägg
#3

Kan för enkelhetens skull då kopiera in precis hela kod-delen, med tabell etc så att ingen nödvändig info försvinner för dig :)

<%Set Connect = Server.CreateObject("ADODB.Connection")  
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &  Server.MapPath("xxxx/yyyyyy.mdb")&";pwd=härvareettlösenordvisst" 
Set RecSet = Server.CreateObject("ADODB.Recordset") 
Addera = "Select* From games where teamHome = 'mitt lagnamn' AND gameType = 'League' AND gameTipsSign <> 'X' AND season = 7  order by 

teamHomeGoals DESC, teamAwayGoals ASC, date DESC"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic %>

<TABLE cellSpacing=4 cellPadding=4 width=225 border=0>
<TBODY>
<TR>
<TD class=name bgColor=#DE8B00><STRONG><FONT color=#000000>Största seger hemma </FONT></STRONG></TD></TR>
<TR>
<TD class=name bgColor=#f5f5f5>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>

<TD class=head5 width="5%" align="right"><STRONG>#</STRONG></TD>
<TD class=head5 width="5%"><STRONG>&nbsp;</STRONG></TD>
<TD class=head5 width="70%"><STRONG>vs.</STRONG></TD>
<TD class=head5 width="15%" align="right"><STRONG>Res.</STRONG></TD>
<TD class=head5 width="5%"><STRONG>&nbsp;</STRONG></TD>
</TR>

<% For i=1 To 5
nummert1 = nummert1 + 1
If nummert1 Mod 2 = 0 then
color = "#F8C570"
Else
color = "#FFFFFF"
End If
%>

<TR>

<td bgcolor="<%=color%>" align="right">(<%=nummert1%>)</td>
<td bgcolor="<%=color%>">&nbsp;</td>
<td bgcolor="<%=color%>"><a href="link_to_game?checkid=<%=RecSet("id")%>"><%If Recset("teamHome") = "mitt lagnamn" Then%><%=left(RecSet("teamAway"),17)%></a><%else%><%=left(RecSet("teamHome"),17)%></a><%end if%></td>
<td bgcolor="<%=color%>" align="right"> <%=RecSet("teamHomeGoals")%> - <%=RecSet("teamAwayGoals")%></td>
<td bgcolor="<%=color%>">&nbsp;</td>
        </tr>

</TBODY>

<%
RecSet.MoveNext
Next
RecSet.close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
%>

,,,och tack för välkomnandet. Vet jag varit medlem förr i detta eminenta forum och glades åt att se att det fanns kvar. Dessvärre har jag förlorat rättigheterna till den mailadressen jag en gång reggade mig med här så jag fick regga mig på nytt :)

PS. La in db-kopplingen också, så är det helt komplett, fast med en del säkerhetsändringar då förstås .... Tänk på att både jag och koden är gammal :D Den funkar trots allt rätt ok ännu, bortsett då från de editeringar jag nu plötsligt ville göra

Medlem sedan sep. 2006867 inlägg
#4

Ok :)

Jag ändrade lite men kan ju inte testa men det enda jag gjort är att byta ut for-satsen mot en do while / loop, såhär:

<%
'db-koppling
%>

<table cellspacing="4" cellpadding="4" width="225" border="0">
<tbody>
<tr>
	<td class="name" bgcolor="#de8b00"><strong><font color="#000000">Största seger hemma </font></strong></td></tr>
<tr>
	<td class="name" bgcolor=#f5f5f5>
<table cellspacing="0" cellpadding="0" width="100%" border="0">
<tbody>
	<tr>
        <td class="head5" width="5%" align="right"><strong>#</strong></td>
        <td class="head5" width="5%"><strong>&nbsp;</strong></td>
        <td class="head5" width="70%"><strong>vs.</strong></td>
        <td class="head5" width="15%" align="right"><strong>Res.</strong></td>
        <td class="head5" width="5%"><strong>&nbsp;</strong></td>
    </tr>

<% 
	do while not RecSet.EOF or nummertl < 5
		nummert1 = nummert1 + 1
		If nummert1 Mod 2 = 0 then
			color = "#F8C570"
		Else
			color = "#FFFFFF"
		End If
%>

<tr>
	<td bgcolor="<%=color%>" align="right">(<%=nummert1%>)</td>
	<td bgcolor="<%=color%>">&nbsp;</td>
	<td bgcolor="<%=color%>"><a href="link_to_game?checkid=<%=RecSet("id")%>"><%If Recset("teamHome") = "mitt lagnamn" Then%><%=left(RecSet("teamAway"),17)%></a><%else%><%=left(RecSet("teamHome"),17)%></a><%end if%></td>
	<td bgcolor="<%=color%>" align="right"> <%=RecSet("teamHomeGoals")%> - <%=RecSet("teamAwayGoals")%></td>
	<td bgcolor="<%=color%>">&nbsp;</td>
</tr>

</tbody>

<%
RecSet.MoveNext
Loop
RecSet.close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
%>
Medlem sedan juni 20077 inlägg
#5

blev ingen större skillnad faktiskt. Felmesset är detsamma fortfarande....

Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats. Den begärda åtgärden kräver en aktuell post. ..........

Tack för hjälpen på traven mannen

Jag är ringrostig HAHAHA...

Fixar dna editeringar och hlömmer MINA, som inte tänkte längre än näsan räckte

Medlem sedan sep. 2006867 inlägg
#6

Lägg till response.flush direkt efter do while:

do while not RecSet.EOF or nummertl < 5
 response.flush

och vad händer då?

/red: du behöver dessutom detta i början på din fil

<%
Response.Buffer=true
%>
Medlem sedan juni 20077 inlägg
#7

kan ej radera.. blev dubbelpostat av misstag

Medlem sedan juni 20077 inlägg
#8

Still same error.

Enda gången jag fick det att fnka var om jag tog bort din "or nummert....." i början där, men då kom jag ju på att det inte blir ett maxtak på 5 visade matcher som ju var själva grejen, så det ändrade jag tillbaks. Men som sagt. Still the same error

Medlem sedan sep. 2006867 inlägg
#9

Bytte typsnitt och såg att jag döpt variabeln till nummertL och inte nummert1

Men i alla fall, om du lyckas öppna ditt RecSet så måste du kunna testa på EOF eller BOF och om det inte funkar så är det något knas med RecSet.Open.

Men det har jag aldrig stött på själv, kanske någon annan här har mer idéer?

Medlem sedan juni 20077 inlägg
#10

Jag noterade din "felstavning" från start och editerade det direkt, så där i låg inte problemet. Jag sitter och leker runt lite men utan att lyckas speciellt bra.

Tackar dock så länge för din tid och hoppas kunna lösa det själv eller om du eller ngn annan får ngn snilleblixt till :)

Medlem sedan dec. 19996 721 inlägg
#11

1. Byt namn på variablen "Addera" till "SQL" el. likn. Namnet "Addera" kommer från Mikrodatorns webbstudio, och det renderar spöstraff.
2. Be databasen att begränsa utvalet, genom att skriva "SELECT TOP 5 * ....."
3. "do while not RecSet.EOF or nummertl < 5" borde ha varit "do while not RecSet.EOF and nummertl < 5", men nu behövs bara "do while not RecSet.EOF"

Medlem sedan juni 20077 inlägg
#12

Här delas inga j-a spöstraff ut till gamla människor! (c:

Men tack som bara den för input och hjälp. Man kan enkelt säga att: Det löste biffen

Medlem sedan dec. 19996 721 inlägg
#13

Spöstraffet är avskaffat (det dyker gärna upp när webbstudion visar sina spår. De artiklarna har lärt ut så mycket dåligt genom åren, så man blir lite gramse...).

Gött att det löste problemet och välkommen till wF!

264 ms totalt · 3 externa anrop · v20260731065814-full.767b4345
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)