webForumDet fria alternativet

Objektet måste vara en mängd.: 'application.lock'

ASP

5 svar · 246 visningar · startad av ampy

Medlem sedan feb. 20011 498 inlägg
Frågan#1

Min global.asa ser ut så här:

<script language="vbscript" Runat="server">
	sub application_onStart
		application("users") = 0
		set application("oRsUser") = Server.CreateObject("ADODB.RecordSet")
		application("oRsUser").cursorLocation = 3
		application("oRsUser").Fields.Append "user",201,255
		application("oRsUser").Fields.Append "page",201,255
		application("oRsUser").Fields.Append "aktiv",201,255
		application("oRsUser").open
	end sub
	
	sub session_onStart
		session("user") = ""
	end sub
	
	sub session_onEnd
		application.lock
			application("oRsUser").filter = "user = '" & session("user") &"'"
			application("oRsUser").delete
			application("users") = application("users") -1 
			application("oRsUser").filter = 0
		application.unlock		
		session("user") = ""
	end sub
</script>

Denna kod har jag på varje sida:

	application.lock
	[B]application.lock application("oRsUser").filter = "user = '" & session("username") &"'" [/B]
	application.lock application("oRsUser").fields("page") = GetURL
	application.lock application("oRsUser").fields("aktiv") = CStr(now())
	application.lock application("oRsUser").update
	application("oRsUser").filter = 0 
	application.unlock

När jag går in på en sida så får jag detta felmeddelande:

Körningsfel i Microsoft VBScript (0x800A01C3)
Objektet måste vara en mängd.: 'application.lock'

På den raden med fetstil.

Varför får jag detta felmeddelande?

Medlem sedan dec. 200012 464 inlägg
#2
application.lock
application("oRsUser").filter = "user = '" & session("username") &"'" 
application("oRsUser").fields("page") = GetURL
 application("oRsUser").fields("aktiv") = CStr(now())
application("oRsUser").update
application("oRsUser").filter = 0 
application.unlock
Medlem sedan feb. 20011 498 inlägg
#3

Kom på en sak. Om man skulle ha många besökare samtidigt inne på sidan och använder denna teknik så är väl inte det så bra eftersom med denna kod låser man applicationen och endast en besökare har tillgång till den. Sen öppnas den dock igen. Men om tex 10 st samtidigt laddar en sida som får ju de andra vänta ett tag. Dock handlar det ju inte så mycket tid men ändå.

Eller har jag helt fel?

Medlem sedan mars 20015 287 inlägg
#4

ampy: Det är väl iofs just det som är vitsen med application.lock?
Att låsa det hela så att de olika användarnas/besökarnas data inte "krockar" utan att alla får vänta till "sin tur".

Medlem sedan feb. 20011 498 inlägg
#5

Jo, men jag bara undrar om detta är ett bra system för den som har väldigt många personer inne på sidan samtidigt.

För dem som har väldigt många personer inne samtidigt på sin sida kanske inte använder detta system för att hålla reda på aktiva användare.

Har jag rätt?

Medlem sedan mars 20015 287 inlägg
257 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)