Foros del Web » Programando para Internet » ASP Clásico »

Comprobar que cada registro de una tabla existe en otra tabla para buscar duplicados

Estas en el tema de Comprobar que cada registro de una tabla existe en otra tabla para buscar duplicados en el foro de ASP Clásico en Foros del Web. Hola: Estoy intentando hacer que cada registro de una tabla exista en otra, para eliminar los que sean iguales en las dos tablas. O sea ...
  #1 (permalink)  
Antiguo 25/11/2009, 19:12
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años, 10 meses
Puntos: 0
Comprobar que cada registro de una tabla existe en otra tabla para buscar duplicados

Hola:
Estoy intentando hacer que cada registro de una tabla exista en otra, para eliminar los que sean iguales en las dos tablas.
O sea quiero que busque cada registro de RsCorreosaBorrar en RsBoletindiario2 para que luego si coinciden borrarlos en RsBoletindiario2, pero me recorre un recordset y cuando llega al final no me avanza en la otra tabla. ¿Pueden decirme por qué?
Mi codigo es:
Código:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%response.Expires=0
Response.AddHeader "PRAGMA", "NO-CACHE"
%> 

<body>
<!--Incluimos el fichero de constantes-->
<!--#include file="../adovbs.asp" -->
<%
    'Para conexión a dsn arsys con ACCESS
Set Conn= Server.CreateObject("ADODB.Connection")
Set Command= Server.CreateObject("ADODB.Command")
Conn.open "DSN=emailrevisar"
Command.ActiveConnection=Conn 
Command.CommandType=adCmdText

'Listamos los registros de Boletindiario2
    Command.CommandText="select * FROM boletindiario2"
    Set RsBoletindiario2=Command.Execute ()
     
'Listamos todos los registros en la tabla correosaborrar
    Command.CommandText="select * FROM correosaborrar"
    Set RsCorreosABorrar=Command.Execute ()


    
    RsCorreosABorrar.movefirst
    do while not RsCorreosABorrar.eof
        Response.write "<font color=""green"" size=""5"">"  & RsCorreosABorrar("id") & ".- " & RsCorreosABorrar("email") & " de la Tabla CorreosABorrar comparado con </font>"
        Do while not RsCorreosABorrar("email") = RsBoletindiario2("email")

            Response.write "<br>" & RsBoletindiario2("id") & " " & RsBoletindiario2("email") & " <br><font color=""red"">emails son distintos</font><br>"
             
            RsBoletindiario2.movenext
        Loop
    
        RsCorreosABorrar.movenext
    Loop
%>
</body>
Muchas gracias de antemano a todos
__________________

Espero haber aprendido algo de tí.
A mi padre.
  #2 (permalink)  
Antiguo 26/11/2009, 06:07
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 3 meses
Puntos: 126
Respuesta: Comprobar que cada registro de una tabla existe en otra tabla para buscar

Hola

Podrías sacar los registro en con getRows() después con dos ciclos ir comparandolos

Código asp:
Ver original
  1. for i = 0 to ubound(registros1,2)
  2. for j = 0 to ubound(registros2,2)
  3. if registos2(mail,j) = registros1(mail,i) then
  4. ...
  5. else
  6. .....
  7. end if

Habría otra manera pero es más complicada, de todas formas esto creo que funcionará

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 26/11/2009, 06:39
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años, 10 meses
Puntos: 0
Respuesta: Comprobar que cada registro de una tabla existe en otra tabla para buscar

No me entero de mucho con las matrices. Supongo que registros1 y registros2 son los dos recordset qeu utilizo, pero para que es el parametro ",2"
Asi que lo he dejado asi:

for i = 0 to ubound(RsCorreosABorrar,2)
for j = 0 to ubound(RsBoletindiario2,2)
if RsCorreosABorrar("email",j) = RsBoletindiario2("email",i) then
response.write "el registro es igual"
else
response.write "el registro es diferente"
end if
Next
Next
Pero me devuelve el error: No coinciden los tipos en la linea que va en rojo

Gracias

__________________

Espero haber aprendido algo de tí.
A mi padre.

Última edición por ciberpata; 26/11/2009 a las 06:52
  #4 (permalink)  
Antiguo 26/11/2009, 07:49
Avatar de 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
Respuesta: Comprobar que cada registro de una tabla existe en otra tabla para buscar

Cita:
Estoy intentando hacer que cada registro de una tabla exista en otra, para eliminar los que sean iguales en las dos tablas.
en otras palabras, quieres duplicar ambas tablas para luego borrarlas ...

Cita:
O sea quiero que busque cada registro de RsCorreosaBorrar en RsBoletindiario2 para que luego si coinciden borrarlos en RsBoletindiario2
aaaahhhh

Para que te complicas?

delete from boletindiario2 where email in (select email from correosaborrar)

y listo!

Eso borra aquellos registros de la primer tabla cuya llave (el campo email) este en ambas tablas
  #5 (permalink)  
Antiguo 26/11/2009, 08:29
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años, 10 meses
Puntos: 0
Respuesta: Comprobar que cada registro de una tabla existe en otra tabla para buscar

Caramba no sabia que se podia hacer eso.
Gracias Myakire. Funcionó perfectamente.
__________________

Espero haber aprendido algo de tí.
A mi padre.
  #6 (permalink)  
Antiguo 26/11/2009, 08:45
Avatar de 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
Respuesta: Comprobar que cada registro de una tabla existe en otra tabla para buscar

Hace poco leí un post de alguien que estaba batallando con un script para presentar un query de forma transpuesta, y estaba batallando precisamente por no hacerlo desde el SQL.

Antes de batallar con la capa correspondiente al ASP en este caso, siempre hay que ver si se puede resolver directamente en la de Datos

Que bueno que te sirvió

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:14.