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

Eliminación de registros a los que hace referencia desde otra tabla

Estas en el tema de Eliminación de registros a los que hace referencia desde otra tabla en el foro de ASP Clásico en Foros del Web. Buenas tardes, tengo otro problemita que seguro alguno de ustedes ha pasado por esto y quizá pueda ayudarme, el asunto es que necesito eliminar un ...
  #1 (permalink)  
Antiguo 08/05/2009, 12:39
Avatar de Cameron_2006  
Fecha de Ingreso: diciembre-2006
Mensajes: 248
Antigüedad: 18 años, 4 meses
Puntos: 0
Eliminación de registros a los que hace referencia desde otra tabla

Buenas tardes, tengo otro problemita que seguro alguno de ustedes ha pasado por esto y quizá pueda ayudarme, el asunto es que necesito eliminar un registro de una table que hace referencia desde otra tabla, me explico, tengo 3 tablas (mencionaré solo los campos que interesan):

1) m_salas (están todas las salas de mensajes)
campos:
cod_sala (INT)
cod_proyecto (INT)
...

2) t_salasmensajes (están todos los mensajes relacionados con la sala):
cod_mensaje
cod_sala
...

3) m_galeriasalas (todas las imagenes que están relacionadas con los mensajes):
Campos:
cod_galeriasala
cod_mensaje

Ahora bien, ya borré los archivos físicos que estaban en la carpeta, ahora debo eliminar el registro en la base de datos, posteriormente los mensajes, y luego la sala, el código con el que tengo problemas es el de eliminar los registros de las imágenes que pertenecen a los mensajes, es este:

sql="delete from m_galeriasalas " &_
"where cod_mensaje in ( "&
"select b.cod_mensaje, c.cod_sala " &_
"from t_salasmensajes b, m_salas c " &_
"where b.cod_sala = c.cod_sala "&_
"c.cod_proyecto="& cod_proyecto&")"
conexion.execute SQL

Que sería para eliminar todos los registros (cod_mensajes) que están en la tabla m_galeríasalas y que pertenecen al cod_proyecto de la tabla m_salas.

Me da este error:
65|800a03ea|Error_de_sintaxis

La línea 65 es esta "where cod_mensaje in ( "&

Gracias por la ayuda (como siempre)
  #2 (permalink)  
Antiguo 08/05/2009, 12:52
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Respuesta: Eliminación de registros a los que hace referencia desde otra tabla

Así, rápido, veo que falta algo. ¿notás su ausencia?

Código:
sql="delete from m_galeriasalas " &_
"where cod_mensaje in ( "&
"select b.cod_mensaje, c.cod_sala " &_
"from t_salasmensajes b, m_salas c " &_
"where b.cod_sala = c.cod_sala "&_
"c.cod_proyecto="& cod_proyecto&")"
__________________
...___...
  #3 (permalink)  
Antiguo 08/05/2009, 13:14
 
Fecha de Ingreso: abril-2009
Mensajes: 5
Antigüedad: 16 años
Puntos: 0
Respuesta: Eliminación de registros a los que hace referencia desde otra tabla

Más fácil... por qué no usas una clave ajena y borrado en cascada?
  #4 (permalink)  
Antiguo 08/05/2009, 13:14
Avatar de Cameron_2006  
Fecha de Ingreso: diciembre-2006
Mensajes: 248
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: Eliminación de registros a los que hace referencia desde otra tabla

Gracias Al Zuwaga.... no porfa dime que me falta...
  #5 (permalink)  
Antiguo 08/05/2009, 13:15
Avatar de Cameron_2006  
Fecha de Ingreso: diciembre-2006
Mensajes: 248
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: Eliminación de registros a los que hace referencia desde otra tabla

flozanol, está haciendo eso (creo) ya borró la imagen de la carpeta, al registro de la imagen que corresponde al mensaje
  #6 (permalink)  
Antiguo 08/05/2009, 13:35
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 8 meses
Puntos: 16
Respuesta: Eliminación de registros a los que hace referencia desde otra tabla

prueba esto

Código asp:
Ver original
  1. sql="delete from m_galeriasalas " &_
  2. "where cod_mensaje in ( "&_
  3. "select b.cod_mensaje, c.cod_sala " &_
  4. "from t_salasmensajes b, m_salas c " &_
  5. "where b.cod_sala = c.cod_sala "&_
  6. "c.cod_proyecto="& cod_proyecto&")"
  7. conexion.execute SQL
  #7 (permalink)  
Antiguo 08/05/2009, 13:58
Avatar de Cameron_2006  
Fecha de Ingreso: diciembre-2006
Mensajes: 248
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: Eliminación de registros a los que hace referencia desde otra tabla

Es lo que expuse en el problema, que diferencia hay entre ese y este?

sql="delete from m_galeriasalas " &_
"where cod_mensaje in ( "&
"select b.cod_mensaje, c.cod_sala " &_
"from t_salasmensajes b, m_salas c " &_
"where b.cod_sala = c.cod_sala "&_
"c.cod_proyecto="& cod_proyecto&")"
conexion.execute SQL
  #8 (permalink)  
Antiguo 08/05/2009, 14:35
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Respuesta: Eliminación de registros a los que hace referencia desde otra tabla

¿Qué diferencia hay entre una línea y otra?

Código:
"where cod_mensaje in ( "&
"where cod_mensaje in ( "&_
__________________
...___...
  #9 (permalink)  
Antiguo 08/05/2009, 14:36
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Respuesta: Eliminación de registros a los que hace referencia desde otra tabla

Cita:
Iniciado por Cameron_2006 Ver Mensaje
Es lo que expuse en el problema, que diferencia hay entre ese y este?
Descubra la única diferencia:
Código:
"where cod_mensaje in ( "&
"where cod_mensaje in ( "&_
__________________
...___...
  #10 (permalink)  
Antiguo 09/05/2009, 11:31
Avatar de Cameron_2006  
Fecha de Ingreso: diciembre-2006
Mensajes: 248
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: Eliminación de registros a los que hace referencia desde otra tabla

Gracias Al Zuwaga, ahora me da otro error:

borrar_proyecto.asp |70|80040e14|You_have_an_error_in_your_SQL_syntax; _check_the_manual_that_corresponds_to_your_MySQL_s erver_version_for_the_right_syntax_to_use_near_'c. cod_proyecto=26)'

El código es este:
sql="delete from m_galeriasalas " &_
"where cod_mensaje in ( "&_
"select b.cod_mensaje, c.cod_sala " &_
"from t_salasmensajes b, m_salas c " &_
"where b.cod_sala = c.cod_sala "&_
"c.cod_proyecto="& cod_proyecto&");"
conexion.execute SQL

Gracias nuevamente
  #11 (permalink)  
Antiguo 09/05/2009, 11:55
Avatar de Cameron_2006  
Fecha de Ingreso: diciembre-2006
Mensajes: 248
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: Eliminación de registros a los que hace referencia desde otra tabla

Bueno tenía otro error, me faltaba el "and" en "c.cod_proyecto="& cod_proyecto&");" lo corregí y ahora me da este error:

65|80004005|Operand_should_contain_1_column(s)

Entoces quité la columna c.cod_sala y funcionó, quedó así el código:
sql="delete from m_galeriasalas where cod_mensaje in (select b.cod_mensaje from t_salasmensajes b, m_salas c where b.cod_sala = c.cod_sala and c.cod_proyecto="& cod_proyecto&")"
conexion.execute SQL

Gracias a todos por sus respuestas. Un saludo
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 14:35.