webForumDet fria alternativet

Undantag inträffade

ASP

1 svar · 142 visningar · startad av arvjos

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

Har bl.a den här do-satsen i en fil. Men när jag kör den så får jag "Undantag inträffade" på den första if-satsen. Vad är det för fel...fattar nada!

Do while OK = "no"
		
		If Prayer("mo6") = "N" then
			OK = "no"
		Else
			If Prayer("Tredje") = "yes" then
				Pass("Owner") = Prayer("Id")
				OK = "yes"
			Else
				Set Tredje=conn.Execute("SELECT * FROM Pass Where Owner = '"& Prayer("Id") &"' Order by Ar DESC, Manad DESC, Dag DESC")
				If Tredje.EOF then
					Pass("Owner") = Prayer("Id")
					OK = "yes"
				Else
					Senast = Tredje("Ar") & "-" & Tredje("Manad")  & "-" & Tredje("Dag")
			
					If DateDiff("d", Senast, Datum) > 14 then
						Pass("Owner") = Prayer("Id")
						OK = "yes"
					Else
					End If
				End If
				Tredje.Close
			End If	
		End If
	If Prayer.EOF then
		Prayer.MoveFirst
	Else
		Prayer.MoveNext
	End If

	Loop

Tack för all hjälp

Medlem sedan dec. 200012 464 inlägg
#2

Det ser komplicerat ut. Det går säkert att förenkla med lite join så att du slipper loopen och får effektivare kod.

Porblemet beror nog på att när du gör

prayer.movenext

så kontrollerar du aldrig om du har fått EOF och sedan när du kommer till nästa varv i loopen så blir det fel när du försöker referera något i prayer.

259 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)