Ver Mensaje Individual
  #36 (permalink)  
Antiguo 20/04/2007, 08:41
Avatar de Myakire
Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Re: Como hacer buen uso de los rs

A ver ..... te pido que leas cuidadosamente lo que te voy a escribir y trates de comprenderlo para que así puedas debatirme si estoy en lo correcto o me des argumentos para que digas lo contrario.

He modificado tu código del post 25 y queda así con exactamente la misma funcionalidad:
Código:
<%
VarIDCASA= trim(request.QueryString("num"))

ConsultaVivienda="select * from vivienda where id_vivien= " & VarIDCASA
set rs=conn.execute(ConsultaVivienda)

if not rs.eof then
   if rs("Rut_perso")="11.111.111-1" then
 
      IF cInt(rs2("id_vivien"))=CInt(VarIDCASA) then
         'NO SE PUEDE BORRAR
         Response.Redirect("Vivienda.asp?SW=1&Error=8")
      ELSE
			   'BORRO LA VIVIENDA
            sentencia="delete from vivienda where id_vivien= " & VarIDCASA
            conn.execute(sentencia)
						
            sentencia="delete from cuentavivienda"
            conn.execute(sentencia)
						
            Sentencia="Select Count(id_vivien) as CantidadDeCasas from vivienda"
            Set rs6=conn.execute(Sentencia)
						
            sentencia="Select id_vivien from vivienda"
            set rs=conn.execute(sentencia)
						
            while not rs.eof
               Sentencia="insert into CuentaVivienda (ID_VIVIEN, Cantidad_CuentaVivienda)values('"&rs("ID_VIVIEN")& "', '"&rs6("CantidadDeCasas")&"')"
               conn.execute(Sentencia)
               rs.movenext
            wend
         end if
         Response.Redirect("Vivienda.asp?SW=1&Error=6")
   else
      ' NO PUEDE ELIMINAR LA VIVIENDA
      Response.Redirect("Vivienda.asp?SW=1&Error=7")
   end if
end if
%>
Lo modifiqué no para optimizarlo, por que igual a eso, hay que mejorarlo, por ejemplo no tiene caso que hagas un ciclo para hacer INSERT's de UNO en UNO de todos los registros de "vivienda" cuando con UN SOLO insert puedes agregarlos todos; creas objetos de forma implícita, etc, pero bueno, esa es otra historia.

Lo acomodé así para yo ver más facilmente que tienes mal. Veo para empezar que tienes código duplicado (lo eliminé), yo colocaría un Response.Write Sentencia debajo de cada Conn.Execute y comentaría los execute para ver la secuencia que el programa hizo, con ello verificaría que todo se ejecutó correctamente. Ahora, por último, me llama la atención esto me mencionaste:


Efectivamente en el listado original utilizo la tabla de viviendas, tipovivienda y la tabla de personas. Pero solo borras de Viviendas, se me hace que por ahí tienes otro error de lógica del que no vamos a poder nadie mas que tu, solucionar.