09/10/2018, 17:48

[Q] Session trong Global.asa

Trong file global.asa mình có đoạn code sau cho Session onEnd
//////////////////////////////////////////////////////////
Sub Session_OnEnd
Application.Lock
Application("WhoOn") = Application("WhoOn") - 1
Application.Unlock

set connapp = Server.CreateObject ("ADODB.Connection")
connapp.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db/mnm_main_db.mdb")
sql = "UPDATE users_logtime SET offline=True WHERE offline=False AND SID=" & Session.SessionID & " AND user_id=" & Session("user_id") & ""
connapp.Execute (sql)
set connapp = Nothing
End Sub
///////////////////////////////////////////////////////////
Có vẻ như câu lệnh execute không hoạt động mặc dù mình đã kiểm tra tất cả, thử chạy bằng file .asp cũng không bị lỗi gì, nhưng đưa vào global.asa thì lại kô chạy. Mặc dù Application("WhoOn") lại chạy ( tức là trừ đi 1)
Ai có thể giúp mình ?
snoopy viết 19:50 ngày 09/10/2018
trong gobal.asa ko thể thực hiện được lệnh conn.execute file này chỉ khởi tạo các biến session va application. No khong thuc hien các lệnh asp.

Mình nghi doạn code đó của bạn nên chaỵ tại file Dafault hoặc Logout cũng được.
Hynohun viết 19:55 ngày 09/10/2018
ồ bạn lầm rồi, chạy được chứ ? Xin lỗi nhe, chắc bạn chưa biết nhiều về file global.asa
Nhưng không hiểu tại sao code trên lại không chạy
Mình biết là nên để vào logout nhưng giả sử member không logout thì sao, như vậy thì online hoài à?
Cái global.asa đó khi đến session.timeout thì nó sẽ tự động xóa member đó ra khỏi danh sách online
Lúc trước thì mình chạy được (trên PWS) nhưng không hiểu sao bây giờ cài ISS lại chạy không được
White_Rose viết 19:59 ngày 09/10/2018
connapp.Execute (sql)
set connapp = Nothing
Đổi thành
connapp.Execute sql
connapp.close
set connapp = nothing

Bạn cũng nên xem lại điều kiện sau WHERE có xảy ra không.
Hynohun viết 19:59 ngày 09/10/2018
thôi vậy, dù sao cũng cảm ơn vì đã trả lời, để mình dùng cách khác
Bài liên quan
0