du får tillbaka ett tomt recordset.
du måste först göra en koll om recordsetet är eof eller inte innan du börjar använda de olika posterna i recordsetet.
cya,
PatrikB
13 svar · 234 visningar · startad av Cactuz
vad är det för fel här?
<%
Set db = Server.CreateObject("ADODB.Connection")
Set RecSet = Server.CreateObject("ADODB.Recordset")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("db.mdb")
namn = session("username")
addera = "SELECT * From stat WHERE username = '" & namn & "'"
RecSet.Open addera,db,1,2
%>
<%
inloggningar = recset("inloggningar")
skickade_mess = recset("skickade_mess")
gb = recset("gb")
inloggningar = inloggningar * 0.10
skickade_mess = skickade_mess * 0.50
gb = gb * 0.70
status = inloggningar + skickade_mess + gb
%>
felmeddelande:
Feltyp:
ADODB.Field (0x800A0BCD)
Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats. Den begärda åtgärden kräver en aktuell post.
/cactuz/stat.asp, line 18
du får tillbaka ett tomt recordset.
du måste först göra en koll om recordsetet är eof eller inte innan du börjar använda de olika posterna i recordsetet.
cya,
PatrikB
hur kollar man det då o vad innebär det?
RecSet.Open addera,db,1,2
%>
<%
[b] if not recset.eof then 'det finns data[/b]
inloggningar = recset("inloggningar")
skickade_mess = recset("skickade_mess")
gb = recset("gb")
inloggningar = inloggningar * 0.10
skickade_mess = skickade_mess * 0.50
gb = gb * 0.70
status = inloggningar + skickade_mess + gb
[b]
else
'det fanns inga poster
end if
[/b]
%>
nu funkar inte scriptet längre
ja.. men inloggningar o det blir inget... jag "visar" det så här:
inloggningar: <%=inloggningar%>
<br>
Skickade mess: <%=skickade_mess%>
<br>
Gästboks inlägg: <%=gb%>
<br>
Totalt: <%=status%>
får inte upp nått efter inloggningar: o d.. det är helt tomt
Ja, då får du lägga till lite lämpliga tilldelningar i else delen. T.ex.
RecSet.Open addera,db,1,2
%>
<%
if not recset.eof then 'det finns data
inloggningar = recset("inloggningar")
skickade_mess = recset("skickade_mess")
gb = recset("gb")
inloggningar = inloggningar * 0.10
skickade_mess = skickade_mess * 0.50
gb = gb * 0.70
status = inloggningar + skickade_mess + gb
else
inloggningar = 0
skickade_mess = 0
gb = 0
status = 0
end if
%>
nu får man 0 på allt fast jag egentligen ska få 0.17 på inloggningar och 0 på resten
Nu förstår jag inte. Om det inte finns något data i tabellen för den användaren hur skulle det då bliu 0.17?
det är ju det som scriptet fixar.. i databasen står det 17
I så fall är det något fel med variabeln namn, t.ex. att den inte innehåller ett vettigt värde.
Hur ser sql-satsen ut efter det att du har byggt ihop sträng addera?
addera = "SELECT * From stat WHERE username = '" & namn & "'"
response.write addera
vänta lite.. det kan stämma med att namn inte har ett vettigt värde...
nu funkar det