webForumDet fria alternativet
Logga in / Bli medlem

Objekt krävs.. (?)

ASP

3 svar · 230 visningar · startad av Gein

Medlem sedan sep. 20005 700 inlägg
Trådstart#1
<!-- #include file="adovbs.inc" -->
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("grabsen.mdb")&";"
Uppdatera = "UPDATE users SET TIMESTAMP = "&time&" WHERE SESSIONID ="&Session.SessionID&""
Response.Write(Uppdatera)
'Connect.Execute(Uppdatera)
Connect.Close
Set Connect = Nothing

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("grabsen.mdb")&";"
Kolla = "SELECT * FROM users"
RecSet.Open Kolla, Connect, adOpenStatic, adLockOptimistic '*

Do Until RecSet.EOF

	If DateDiff("n", time, RecSet("TIMESTAMP")) < - 1 then

		Set RecSetUpdate = Server.CreateObject("ADODB.Recordset")
		Uppdatera = "UPDATE users SET SESSIONID = '"&Session.SessionID&"', ONLINE = 0 WHERE SESSIONID = "&RecSet("SESSIONID")&""
		RecSetUpdate.Open Uppdatera, Connect, adOpenStatic, adLockOptimistic
		RecSetUpdate.Close
	end if

RecSet.MoveNext
Loop
%>

så här ser min .inc fil ut, som jag tänkte ha, men jag får felmeddelande på rad 14, Objekt krävs.. jag har markerat raden med en *:a.
Kan jag inkludera en fil innuti en include fil, som jag har gjort?, det borde väl gå.

Medlem sedan juni 200032 967 inlägg
#2

Du har inte skapat RecSet.

Set RecSet = Server.CreateObject("ADODB.RecordSet")
Medlem sedan dec. 19996 721 inlägg
#3

...och dessutom är det bara resursslöseri att skapa Connection-objektet två gånger, söka ut informationen som ska uppdateras och att skapa ett recordset när man kör en UPDATE.

Denna kod gör exakt samma sak som din, fast snabbar.

<!-- #include file="adovbs.inc" -->
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("grabsen.mdb")&";"
Uppdatera = "UPDATE users SET TIMESTAMP = " & time & " WHERE SESSIONID =" & Session.SessionID
Response.Write Uppdatera
'Connect.Execute Uppdatera,,128

Kolla = "UPDATE users SET ONLINE = 0 WHERE DATEDIFF('n',time(),[TIMESTAMP])<-1"
Connect.Execute Kolla,,128
%>
Medlem sedan sep. 20005 700 inlägg
#4

tackar!, snacka om att komprimera koden.. jag har mycket att lära!

375 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
122 ms — deklarationer (db)
125 ms — hämta statistik (db)
125 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)