PDA

Ver la Versión Completa : ADO Borrado en Cascada


TONIAM
09-12-2003, 09:43:55
Hola Foro:

Me gustaria saber como puedo actualizar un fichero, cuando se produzca un borrado en cascada.

Tengo dos ficheros de Access, una cabecera y un detalle de facturas, y en access le puesto, integridad referencial con actualizacion y borrado en cascada, quisiera que cuando borro la cabecera cada vez que elimine una linea de detalle automaticamente, actualice tambien automaticamente otro fichero de existencias.

He probado ponerlo en BeforeDelete del detalle, para que cuando borre cada linea capture esa linea antes de borrarla y actualizar el stock, pero no entra en el evento.

Alguien sabe de que manera se pudiera hacer esto.

Un saludo
Toni

guillotmarc
09-12-2003, 10:40:33
Hola.

A esto se le llama Triggers, y lamentablemente no están disponibles en Access. Por lo que vas a tener que actualizar las existencias desde tu aplicación.

NOTA : Los triggers están disponibles en la mayoría de servidores SQL : Interbase/Firebird, SQL Server, Oracle, ....

Saludos.

marcoszorrilla
09-12-2003, 15:20:25
Como te dice Marc, desde Access no puedes automatizarlo. lo mejor es que lo hagas tu mismo.

Desactiva el borrado en cascada, no te va a traer más que problemas.

Le pones un diálogo al usuario, ¿Está seguro de que desea borrar.....?

Entonces borras línea a línea con el clásico delete.

Para ello primero:
Buscas el producto en el almacen, lo editas y tratas de actualizarlo, sino hay error, borras la línea y así hasta el final, si no se puede actualizar el almacén lo intentas por ejemplo tres veces, con una pequeña parada Sleep(0,5), por ejemplo, y si no se puede le das un mensaje al usuario y cancelas el proceso.

Un Saludo.