Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-12-2003
TONIAM TONIAM is offline
Miembro
 
Registrado: may 2003
Ubicación: Valencia
Posts: 38
Poder: 0
TONIAM Va por buen camino
ADO Borrado en Cascada

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
Responder Con Cita
  #2  
Antiguo 09-12-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
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.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #3  
Antiguo 09-12-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
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.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 10:45:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi