[UserLog]用于记录用户的操作信息,表结构如下
[LogID] [int] IDENTITY(1,1) NOT NULL,
[UserAccount] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[Path] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL, 操作页面
[LogType] [nvarchar](20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[LogMsg] [nvarchar](100) COLLATE Chinese_PRC_CI_AS NULL,
[LogDate] [datetime] NULL,
[LogIp] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
因为[UserLog]表涉及的业务比较单一,基本没有必要通过实体类进行操作,所以没有生成对应的实体类
以[UserLog]表生成一个单表数据访问类DAL_UserLog,文件名为DAL_UserLog.asp,放在/Class/DAL/目录下,内容如下:
class DAL_UserLog
' ******[UserLog] database field
private lngLogID '[int] IDENTITY (1, 1) NOT NULL
private strUserAccount '[nvarchar] (50) NOT NULL
private strPath '[nvarchar] (50)
private strLogMsg '[nvarchar] (100)
private strLogType '[nvarchar] (20)
private datLogDate 'datetime
private strLogIp
private strSql 'Sql query
' ==============================================================================
' Class Initialize, Terminate
' ==============================================================================
Private Sub Class_Initialize
End Sub
Private Sub Class_Terminate
End Sub
' ///////////////////////////////////////////////////////////////////////////////
' Get Data / dataset
' ///////////////////////////////////////////////////////////////////////////////
' ///////////////////////////////////////////////////////////////////////////////
' Update Table
' ///////////////////////////////////////////////////////////////////////////////
' ***********************************
' User log Record
' ***********************************
Public Sub RecordLog(ByVal vUserAccount,ByVal vLogType,ByVal vMessage)
strSql = " insert into [UserLog] (UserAccount, LogType,Path, LogMsg, LogDate, LogIp) "
strSql = strSql &" values "
strSql = strSql &" ('"&page.ToSql(vUserAccount)&"','"&vLogType&"','"&page.ToSql(page.URL)&"','"&left(page.ToSql(vMessage),100)&"',GetDate(),'"& page.GetIP &"' ) "
Data.Execute strSql
End Sub
' ***********************************
' Record Login
' ***********************************
Public Sub RecordLogin(ByVal vUserAccount,ByVal vMessage)
me.RecordLog vUserAccount,"Login",vMessage
End Sub
' ///////////////////////////////////////////////////////////////////////////////
' Show UI / Show-select
' ///////////////////////////////////////////////////////////////////////////////
end class
DAL_UserLog中有两个方法,RecordLog 和 RecordLogin,前者是记录Log信息的通用方法,后者用于登录过程.
又可以看到熟悉的Data & page 活跃的身影,大家自己体会一下.
vbscript类的语法中有一个特殊的用法,即me.RecordLog, me代表当前对象.很奇怪的是,如果RecordLog是一个私有方法,即用private限制之后,就无法在对象的内部用me.RecordLog来调用了,难道还能在外面使用me不成?
按说这仍然是在内部进行的调用,不用me也可以做到同样的效果,那么在vbscript里面这个me又有什么特殊作用呢?或者只是随手写的一个鸡肋的东西?
[ASP中使用三层架构] 10.用户登录之二 UserLog表与相关类
最新推荐文章于 2022-07-08 14:15:25 发布
这篇博客介绍了在ASP中使用三层架构来处理用户登录日志的实现方式。通过创建DAL_UserLog类,实现了RecordLog和RecordLogin两个方法,分别用于通用的日志记录和登录过程的日志记录。文章探讨了VBScript中`me`关键字的用法,并提出了关于私有方法内部使用`me`的疑问。
1334

被折叠的 条评论
为什么被折叠?



