C Cactuz Medlem sedan okt. 2001 670 inlägg Frågan 8 jan. 2002 16:33 #1 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
P PatrikB Medlem sedan mars 2000 2 836 inlägg 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
------------------
-=* IF there is a wrong way to do something, then someone will do it *=-
C Cactuz Medlem sedan okt. 2001 670 inlägg hur kollar man det då o vad innebär det?
L LarsG Medlem sedan dec. 2000 12 464 inlägg 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]
%>
------------------
essentitia preter non sans multiplicandum
C Cactuz Medlem sedan okt. 2001 670 inlägg nu funkar inte scriptet längre :(
L LarsG Medlem sedan dec. 2000 12 464 inlägg Hur då inte fungerar?
Innehåller namn något vettigt värde?
------------------
essentitia preter non sans multiplicandum
C Cactuz Medlem sedan okt. 2001 670 inlägg 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
L LarsG Medlem sedan dec. 2000 12 464 inlägg 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
%>
------------------
essentitia preter non sans multiplicandum
C Cactuz Medlem sedan okt. 2001 670 inlägg nu får man 0 på allt fast jag egentligen ska få 0.17 på inloggningar och 0 på resten
L LarsG Medlem sedan dec. 2000 12 464 inlägg 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?
------------------
essentitia preter non sans multiplicandum
C Cactuz Medlem sedan okt. 2001 670 inlägg det är ju det som scriptet fixar.. i databasen står det 17
L LarsG Medlem sedan dec. 2000 12 464 inlägg 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
------------------
essentitia preter non sans multiplicandum
C Cactuz Medlem sedan okt. 2001 670 inlägg vänta lite.. det kan stämma med att namn inte har ett vettigt värde...