Ver Mensaje Individual
  #31 (permalink)  
Antiguo 23/10/2007, 17:56
Avatar de u_goldman
u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 1 mes
Puntos: 98
Re: Un módulo de usuarios

Hola chicos, perdon por la espera -si es que alguien estaba esperando- he estado bien ocupado con otros menesteres que me habían impedido continuar con nuestro módulo de usuarios, afortunadamente ya estamos de vuelta, así que recapitulemos:

En las sesiones anteriores escribimos los métodos para autentificar y recuperar los datos de nuestros usuarios dando un id, también agregamos la lógica necesaria a nuestro formulario para autentificar usuarios, y nos quedamos en la creación de la interfaz una vez que nuestros usuarios se "loguearon" correctamente.

Bien, ahora vamos a crear un método que nos regresara un arreglo o como set de datos a través del método getRows, el cuál usaremos para listar a nuestros usuarios, así que sin más, abrimos nuestro archivo lib/usuario.asp y codifiquemos nuestro método Listar:

Código:
	Public function Listar(intPagina, intTamanoPagina, strOrdenar)
		Dim ObjConn
		Dim rs
		Dim cmd
		Dim param
		Dim ds
		Dim qry		
		
		Set ObjConn = Server.CreateObject("ADODB.Connection")
		Set rs = Server.CreateObject("ADODB.Recordset")
		Set cmd = Server.CreateObject("ADODB.Command")
		
		qry = "SELECT a.usuario_id, a.usuario_apellido + ', ' + a.usuario_nombre as usuario_nombre_completo, " & _
			  "a.usuario_activo, " & _
			  "a.usuario_fecha_edicion FROM tbl_usuario a "
		if len(strOrdernar) > 0 then
			qry = qry & " ORDER BY " & strOrdenar
		else
			qry = qry & " ORDER BY a.usuario_apellido "
		end if
		
		ObjConn.Open strConnect
		cmd.ActiveConnection = ObjConn
		cmd.CommandType = adCmdText
		cmd.CommandText = qry
		
		rs.CursorType = adOpenStatic
		rs.LockType = adLockReadOnly
		rs.Open cmd
		
		m_registros_totales = rs.RecordCount
		if rs.RecordCount > intTamanoPagina then
			rs.PageSize = intTamanoPagina
			rs.AbsolutePage = intPagina
			m_paginas_totales = rs.PageCount
		else
			m_paginas_totales = 1		
		end if
		
		if not rs.EOF then
			ds = rs.GetRows(intTamanoPagina, 0)
		else
			ds = null
		end if
		
		ObjConn.Close()
		Set rs = Nothing
		Set ObjConn = Nothing
		Set param = Nothing
		Set cmd = Nothing		
		
		Listar = ds
	End function
Casi nada nuevo, para comenzar agregaremos a nuestra clase las propiedades en negritas, que determinan el número de registros y el número de páginas, esto lo usaremos para paginar nuestro "resultset", a continuación las adiciones:

Código:
	private m_registros_totales
	private m_paginas_totales
Código:
	public property get registros_totales()
		registros_totales = m_registros_totales
	end property
	public property let registros_totales(p_data)
		m_registros_totales = p_data
	end property
	
	public property get paginas_totales()
		paginas_totales = m_paginas_totales
	end property
	public property let paginas_totales(p_data)
		m_paginas_totales = p_data
	end property
Código:
	Private sub Class_Initialize
		m_id = -1
		m_uname = ""
		m_pwd = ""
        m_nombre = ""
        m_apellido = ""
        m_activo = false
		m_fecha_edicion = Cdate("1/1/1800")
		m_paginas_totales = 0
		m_registros_totales = 0
	End sub
Ahora procedermos a explicar en detalle lo nuevo de nuestro método Listar...tomemos un momento para respirar
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway