webForumDet fria alternativet

Slumpa Recordset (fel)

ASP

4 svar · 297 visningar · startad av firstchoice

Medlem sedan okt. 2001615 inlägg
Frågan#1

vill slumpa fram en post i mitt RecordSet
gjort så här

oRA.Move CLng((oRA.RecordCount - 1) * Rnd) + 1

men posterna har ju inte nummer eftervarandra ibland, man har kanske tagit bort någon mitt i
vilket gör ju att det blir error om den försöker öppna en sådan

finns det något som säger stop?
typ .EOF eller .BOF?

Medlem sedan maj 200010 687 inlägg
#2

Move går till en viss position och inte till ett visst ID. Så din kod ser vettig ut.

Medlem sedan okt. 2001615 inlägg
#3

tycker jag med =)
men det blir ju fel ibland...verkar som det säger stopp när jag fösöker skriva ut recordsetet, tex oRA("PictureFileName")

Medlem sedan okt. 2001615 inlägg
#4

fel meddelande

1| post: 70
2| post: 148
3| post: 34

ADODB.Recordset error '800a0bcd'

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

/includefiles/random2.asp, line 20

kod:

	Randomize
		Dim I 'As Integer
		For I = 1 To 100
		
		Dim DD
		DD = CLng((oRA.RecordCount - 1) * Rnd) + 1
		Response.Write I & "| post: " & DD & "<br>"
		oRA.Move DD
		If Not oRA.BOF OR oRA.EOF Then

rad 20 är "oRA.Move DD"

vad kan vara fel?
om jag hoppar till den posten den stannar på i access så är allt okey...

Medlem sedan okt. 2001615 inlägg
#5

löste det så här:

oRA.MoveFirst
oRA.Move CLng((oRA.RecordCount - 1) * Rnd) + 1

körde nämligen om slumpen ifall ett uttryck inte stämde och då blev det fel, eftersom med Move så hoppar den inte till den specifika posten utan den hoppar så många steg framåt...vilket gjorde ju tillslut att jag hoppade för långt

tack Erik Juhlin för hjälpen

260 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)