Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-07-2014
nabucodonosor nabucodonosor is offline
Miembro
 
Registrado: jun 2007
Posts: 46
Poder: 0
nabucodonosor Va por buen camino
Eliminar items de una factura

Necesito eliminar un factura junto con los items, pero existe un problema. En ocasiones no me deja borrar ya que me envia un error. Lo que pasa es lo siguiente:

Tengo un trigger en la tabla que la he nombrado [itfact] donde guardo todos los items de la factura. En el trigger after delete de esta tabla mando llamar un procedimiento el cual tiene el objetivo de renumerar los registros (cuando solamente borro un registro), pero el detalle es cuando quiero borrar toda la factura que en ocasiones si me la borra pero no todo el tiempo. Mi pregunta es como hacerle para que cuando mande borrar toda la factura no se ejecute este procedimiento?
Responder Con Cita
  #2  
Antiguo 01-07-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola nabucodonosor.
Cita:
Empezado por nabucodonosor Ver Mensaje
....Mi pregunta es como hacerle para que cuando mande borrar toda la factura no se ejecute este procedimiento?

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 01-07-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No hay quien lo entienda
Responder Con Cita
  #4  
Antiguo 01-07-2014
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 913
Poder: 23
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Cita:
Empezado por nabucodonosor Ver Mensaje
mando llamar un procedimiento el cual tiene el objetivo de renumerar los registros
Talvez podrías omitir esta acción...de renumerar los items de la factura, así simplificas el problema...

Eso de andar activando y desactivando triggers nunca me ha gustado...

Saludos cordiales
Responder Con Cita
  #5  
Antiguo 01-07-2014
orodriguezca orodriguezca is offline
Miembro
 
Registrado: ene 2009
Posts: 221
Poder: 16
orodriguezca Va por buen camino
De acuerdo con cloayza. ¿Hay alguna razón de peso para renumerar los items de la factura?. Por otro lado, ¿cual es el mensaje de error que está enviando el procedimiento almacenado?. Si puedes colocar el código sería de gran ayuda.
Responder Con Cita
  #6  
Antiguo 02-07-2014
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Se me ocurren un par de opciones, que no te deberían cambiar mucho el código actual.
Tal vez pasar el código del trigger a un procedimiento que puedas ejecutar de forma manual al borrar las líneas de factura, o como segunda opción, podrías marcar la factura (añadir un campo booleano) como para borrar (antes de hacer el borrado), de forma que si la factura tiene esa marca activada (quiere decir que se va a borrar) en ese caso el trigger de renumerado debería no hacer nada.
En este caso realizas una operación de UPDATE antes del borrado, pero a cambio evitas todas las operaciones que actualmente hace el trigger.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 02-07-2014
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Similar a lo que comenta Neftalí, te recomiendo que agregues a la tabla principal un campo SmallInt (1/0) o Boolean, pero no para pre-borrar, sino para indicar si la factura está "activa" o "cancelada".

Es preferible desactivar un documento de compra-venta que eliminarlo, ya que de la primera forma se conserva el registro de lo que sucedió y cuándo sucedió, aunque la información ahí contenida ya no sea vigente. Así no tendrás problemas de huecos en la numeración consecutiva.

En pocas palabras, en una base de datos suele haber contenidos que dejan de tener impacto contable o financiero, pero no por ello dejan de tener importancia informativa.

Saludos.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
como eliminar items de treeview delphi for php? papote654 PHP 0 20-10-2011 22:02:58
Factura Electronica Factura-E keys Varios 1 09-11-2010 06:37:46
agregar y/o eliminar items de un listbox a partir de otro listbox Goyo PHP 2 27-09-2007 16:46:30
eliminar items combobox emiliu Varios 5 20-12-2005 08:12:13
Fallo Nº Factura y Linea Factura CarmaZone Tablas planas 5 26-05-2005 11:17:19


La franja horaria es GMT +2. Ahora son las 18:43:05.


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