webForumDet fria alternativet

if rs.EOFthen

16 svar · 325 visningar · startad av sven

svenMedlem sedan aug. 2001383 inlägg
#1

Jag har denna koden för att läsa i min gästbok. Det funkar som det ska.

<%
	Set Rs = Server.Createobject("Adodb.Recordset")	
	SQL = "SELECT * FROM guestbook ORDER BY datum"
	intPageId = request.querystring( "pageid" )
		if intPageId = "" then intPageId = 1
	with Rs
	  .cursorlocation = 3
	  .open SQL, db
	  .pagesize = 5
	  .absolutepage = intPageId
	end with
intPages = cint( Rs.pagecount )
intCurrentPost = 0
		Function Radbryt(rfix)
			rfix = "<P>" & Replace(rfix, vbCrLf, "<br>") & "</P>"
			Radbryt = rfix
		End Function		
do while not Rs.eof and intCurrentPost < Rs.pagesize
strContents = strContents %><tr><td width="180" align="left"><b><a href="mailform.asp?do=<%=rs("epost")%>&name=<%=rs("fran")%>"><%=rs("fran")%></a></b></td>
<td width="120" align="right"><b><%=rs("datum")%></b></tr>
<tr><td width="400" colspan="2"><%=radbryt(rs("meddelande"))%></td></tr>
<tr><td with="400" colspan="2"></td></tr>
<%
intCurrentPost = intCurrentPost + 1
Rs.movenext
loop
for i = 1 to Rs.pagecount
strNavigation = strNavigation & " <a href='?pageid=" & i & "'>" & i & "</a>"
next
response.write "<table>" & strContents & "</table>"
response.write "<table><tr><td>" & strNavigation & "</td></tr></table>" 
%>

Men om databasen är tom så blir det fel. Jag måste altså någonstans peta in If rs.EOF then
Response.Write "Gästboken är tom"
else

Frågan är nu. Var gör jag det?

------------------
/Sven

Jesper TMedlem sedan nov. 20017 144 inlägg
#2

Lättviktsmodellen kommer här:
Varför inte lägga in ett litet inlägg av dig själv, där du uppmanar andra till att skriva inlägg?
Annars är det väl:

If rs.EOF then
Response.Write "Keine inlägg here"
Else
do while not Rs.eof and intCurrentPost < Rs.pagesize

MVH Jesper T

------------------
If ASPackad date-1 then ASPerin Now

[Redigerat av Jesper T den 12 feb 2002]

svenMedlem sedan aug. 2001383 inlägg
#3

Det är klart att man kan göra ett eget inlägg. Men jag vill helst få det att funka helt ut om du förstår.

Problemet är inte koden. Problemet är var den skall vara.

Eller jag vet inte... Plötslight blir allt bara svart.... :q

------------------
/Sven

PallemanMedlem sedan dec. 2000557 inlägg
#4
<%
Set Rs = Server.Createobject("Adodb.Recordset") 
SQL = "SELECT * FROM guestbook ORDER BY datum"
intPageId = request.querystring( "pageid" )
if intPageId = "" then intPageId = 1

with Rs
.cursorlocation = 3
.open SQL, db
.pagesize = 5
.absolutepage = intPageId
end with

intPages = cint( Rs.pagecount )
intCurrentPost = 0
Function Radbryt(rfix)
rfix = "<P>" & Replace(rfix, vbCrLf, "<br>") & "</P>"
Radbryt = rfix
End Function 
  
[b]If Rs.EOF Then
Response.Write "Inga meddelande in gästboken ännu."
  
Else[/b]
  
do while not Rs.eof and intCurrentPost < Rs.pagesize
strContents = strContents %><tr><td width="180" align="left"><b><a href="mailform.asp?do=<%=rs("epost")%>&name=<%=rs("fran")%>"><%=rs("fran")%></a></b></td>
<td width="120" align="right"><b><%=rs("datum")%></b></tr>
<tr><td width="400" colspan="2"><%=radbryt(rs("meddelande"))%></td></tr>
<tr><td with="400" colspan="2"></td></tr>
<%
intCurrentPost = intCurrentPost + 1
Rs.movenext
loop

[b]End If[/b]

for i = 1 to Rs.pagecount
strNavigation = strNavigation & " <a href='?pageid=" & i & "'>" & i & "</a>"
next
response.write "<table>" & strContents & "</table>"
response.write "<table><tr><td>" & strNavigation & "</td></tr></table>" 
%>

------------------
//Palle
www.palleman.nu

[Redigerat av Palleman den 12 feb 2002]

svenMedlem sedan aug. 2001383 inlägg
#5

Tyvärr... funkar inte...

Får fel på raden

.absolutepage = intPageId

som inte gillar att databasen är tom

------------------
/Sven

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#6

Du får köra iffen innan den raden. Får väl ta och skippa with prylen. :)

------------------
/Erik
www.juhlin.nu /sk8files/ /mp3d/

svenMedlem sedan aug. 2001383 inlägg
#7

Man kan ju göra så... men det är inte rätt...

------------------
/Sven

Jesper TMedlem sedan nov. 20017 144 inlägg
#8

Man kan ju göra så... men det är inte rätt...

Spelar det någon roll om det fungerar? ;)

------------------
If ASPackad date-1 then ASPerin Now

svenMedlem sedan aug. 2001383 inlägg
#9

Det beror väl på i vilket syfte man gör olika saker och ting.
Om man tex försöker förstå sig på grejor så är det väl ganska viktig... eller?

------------------
/Sven

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#10

Är inte rätt? Hur ska man annars göra? Det går inte att ange AbsolutePage på ett recordset som är EOF....

------------------
/Erik
www.juhlin.nu /sk8files/ /mp3d/

svenMedlem sedan aug. 2001383 inlägg
#11

Så om jag nu förstår vad du säger är att det inte går att ha paging och en tom databas?

------------------
/Sven

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#12

Självklart går det. Men du måste kolla om det är tomt innan du skriver Rs.AbsolutePage. Exempel:

If Not Rs.EOF Then Rs.absolutepage = intPageId

------------------
/Erik
www.juhlin.nu /sk8files/ /mp3d/

jboy_87Medlem sedan aug. 20011 099 inlägg
#13

lägg in on error resume next så ska det gå om ajg fattar rätt hehe

[Redigerat av jboy_87 den 12 feb 2002]

svenMedlem sedan aug. 2001383 inlägg
#14

Lysande jboy_87 .... Tänk så enkelt det kan vara ändå...

------------------
/Sven

[Redigerat av sven den 12 feb 2002]

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#15

Varför köra med något som On Error Resume Next istället för att lära sig koda korrekt kod?

------------------
/Erik
www.juhlin.nu /sk8files/ /mp3d/

svenMedlem sedan aug. 2001383 inlägg
#16

Skall testa ditt förslag också....

------------------
/Sven

svenMedlem sedan aug. 2001383 inlägg
#17

Tack Erik... det funkar.....

------------------
/Sven

138 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)