主题:  [ASP]关于使用类的问题?

heroufo

职务:普通成员
等级:1
金币:0.0
发贴:4
#12005/5/27 18:06:34
一、在一个类中实例化另一个类(像下面那段代码),这样是否可以,有点像函数的嵌套那样,会不会影响效率问题?

二、下面这段代码为什么读不到任何内容,而如果只在一个类中用Command对象却可以读到内容?
Class LoadInfo
	Public objRs, objConn
	Public Id, Name, Password, Level, Email
	
	Private Sub Class_Terminate()
		Set objLoad = Nothing
		Call CloseObj(objRs)
       End Sub
	
	'读取用户信息
	Public Function LoadUserInfobyId(intId)
		Set objLoad = New CommandDataInfo
		objLoad.strSql = "SELECT * FROM [UserInfo] WHERE [User_ID] =" & CInt(intId)
		Set objRs = objLoad.IUdata
		
		Dim ReArr
		ReArr = objRs.GetRows
		Id = ReArr(0,0)
		Name = ReArr(1,0)
		Password = ReArr(2,0)
		Level = ReArr(6,0)
		Email = ReArr(3,0)
	End Function
End Class


Class CommandDataInfo
	Public objConn, objComm, strSql, strLink
	
	Private Sub Class_Initialize()
		Call OpenData(objConn)
		Set objComm = Server.CreateObject("ADODB.Command")
		objComm.ActiveConnection = objConn
		objComm.CommandType = adCmdText
	End Sub
	
	Private Sub Class_Terminate()
    	Set objComm = Nothing
		Call CloseObj(objConn)
       End Sub
	
	Public Function IUdata()
		objComm.CommandText = strSql
		objComm.Execute
		If strLink <> "" Then
			Response.Redirect strLink
		End If
	End Function
End Class



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#22005/5/27 23:58:17
    Public Function IUdata()
        objComm.CommandText = strSql
        objComm.Execute
        If strLink <> "" Then
            Response.Redirect strLink
        End If
    End Function

函数并没有任何返回值



heroufo

职务:普通成员
等级:1
金币:0.0
发贴:4
#32005/5/28 17:20:56
如果要让IUdata函数返回一个RecordSet记录集该如何修改?
最后效果就像是在LoadUserInfobyId这个函数中执行Command对象一样
Set objRs = objComm.Execute



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#42005/5/29 0:39:59
LoadUserInfobyId也没有返回值,所以不如用方法Sub,然后可以访问类的公共属性Id, Name, Password, Level, Email

看不出CommandDataInfo类存在的必要.如果真想返回一个RecordSet,应该:
IUdata = objComm