FoxPro/Visual FoxPro - Borrar Registros de dos tablas relacionadas en FoxPro 9.0

 
Vista:
Imágen de perfil de Jorge Arturo

Borrar Registros de dos tablas relacionadas en FoxPro 9.0

Publicado por Jorge Arturo (3 intervenciones) el 24/10/2017 18:09:08
Tengo dos tablas, tabla1 y tabla2, necesito borrar los registros de las dos tablas que estan relacionadas por n_factura. ytengo informacion desde el año 2009 y solo tengo que dejar la información de dos años, el campo de la fecha es fecha2. como hago esto, ya que si lo hago de una sola tabla si lo hace, pero necesito hacerlo de las dos tablas. El Foxpro que utilizo es el FoxPro 9.0
Les agradesco quien me pueda ayudar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Mauricio Antonio
Val: 471
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Borrar Registros de dos tablas relacionadas en FoxPro 9.0

Publicado por Mauricio Antonio (1541 intervenciones) el 24/10/2017 19:29:24
Puedes poner el codigo con el que eliminas de una tabla?
Tienes 2 tablas (Tabla1 - Tabla2), con informacion desde el 2009, quieres dejar solo 2 años. Cuales 2 años serian?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jorge Arturo

Borrar Registros de dos tablas relacionadas en FoxPro 9.0

Publicado por Jorge Arturo (3 intervenciones) el 24/10/2017 20:27:09
Gracias por la pronta respuesta.

El Código es el siguiente


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SET EXCLUSIVE ON
 
SET DELETE ON
 
USE TABLA1
 
BROWSE
 
DELETE FROM TABLA1 WHERE FECHA1 = ^06-02-2017
 
 
PACK
 
SET DELETE OFF
 
SET EXCLUSIVE OFF

Aqui si me funcional, pero necesito incluirle una segunda tabla la cual es la tabla2 y la relacion es por medio del campo tabla1.dorden = tabla2.dorden

No se como hacerlo.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Leonardo Daniel A.
Val: 1.115
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Borrar Registros de dos tablas relacionadas en FoxPro 9.0

Publicado por Leonardo Daniel A. (497 intervenciones) el 25/10/2017 04:19:45
Hola deberas borrar primero de la tabla2, supongo que la tabla2 no tiene fecha y esta relacionada con la tabla1 por algun ID

si son tablas libres yo haria...

1
2
3
DELETE FROM Tabla2 WHERE Id IN ( SELECT Id FROM Tabla1 WHERE Fecha1= ^06-02-2017
 
DELETE FROM Tabla2 WHERE Fecha1 = ^06-02-2017

pero si hay un fallo quedaran registros huerfanos...

si las tablas las tienes ligadas a una DBC debes usar una TRANSACCION

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
CLEAR
SET MULTILOCKS ON      && Required for buffering
 
 
USE tabla1
=CURSORSETPROP("Buffering",5)
 
USE tabla2
=CURSORSETPROP("Buffering",5)
 
BEGIN TRANSACTIO
 
DELETE FROM Tabla2 WHERE Id IN ( SELECT Id FROM Tabla1 WHERE Fecha1= ^06-02-2017
 
DELETE FROM Tabla2 WHERE Fecha1 = ^06-02-2017
 
lActualizo = TABLEUPDATE(.T.,.T.,’Tabla1′) .AND.  TABLEUPDATE(.T.,.T.,’Tabla2′)
IF lActualizo THEN
  MESSAGEBOX(‘Transacción realizada., 0)
  END TRANSACTION
ELSE
  ROLLBACK
  MESSAGEBOX( ‘Uno o más de las tablas no fueron actualizadas. Cancelación de la transacción., 0)
  TABLEREVERT(.T.,’Tabla1′)
  TABLEREVERT(.T.,’Tabla2′)
ENDIFIF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar