如何在Session中动态存取数组以及对象?

时间:2021-09-01 20:18:22
<%
Dim SysMenus()

Class TSysMenu
Public MenuID
Public MenuName
Public MenuImage

Public Function LoadInfoByArray(aryMenuInfo)
If IsArray(aryMenuInfo) Then
MenuID=aryMenuInfo(0)
MenuName=aryMenuInfo(1)
MenuImage=aryMenuInfo(2)
End If
LoadInfoByArray=True
End Function
End Class

Public Function GetSysMenus()
Dim i,j,k,l
Dim aryAllData
Erase SysMenus
Dim sSql,objRS
'我要在这里取缓里的数组,怎么写,要能够得到数组里的对象
FUNC_ID_STR = Session("FUNC_ID_STR")
if FUNC_ID_STR = "" then FUNC_ID_STR = 0
sSql = "select MENU_ID, MENU_NAME, MENU_IMAGE from SYS_MENU where MENU_ID in(select left(MENU_ID,2) from SYS_FUNCTION where FUNC_ID in (" &FUNC_ID_STR &"))"
Set objRS = Server.CreateObject("adodb.recordset")
objRS.open sSql,objConn,1,3
If (Not objRS.bof) And (Not objRS.eof) Then
Redim SysMenus(objRS.RecordCount)
aryAllData=objRS.GetRows(objRS.RecordCount)
objRS.Close
Set objRS=Nothing
k=UBound(aryAllData,1)
l=UBound(aryAllData,2)
For i = 0 To l
Set SysMenus(i) = New TSysMenu
SysMenus(i).LoadInfoByArray(Array(aryAllData(0,i),aryAllData(1,i),aryAllData(2,i)))
Next
End If
'输出数组对象内容
'Dim Menu
'For Each Menu in SysMenus
' If IsObject(Menu) Then
' Response.Write(Menu.MenuName)
' End If
'Next
'存到缓存里,是不是这样写
Session("DATA_SysMenus") = SysMenus
GetSysMenus=True
End Function
%>

1 个解决方案

#1


学习

#1


学习