Ver Mensaje Individual
  #12  
Antiguo 21-06-2017
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.267
Reputación: 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
Digamos que los triggers no es una cosa básica de SQL, no es lo primero que se lee o se estudia, pero si que es algio fundamental en cuanto haces cosas serias con una Base de Datos (SGBD) algo seria, por eso es extraño que si has trabajado con ellas no hayas oido hablar.

Es algo como las transacciones. No es lo que se lee/estudia el primer día, pero es algo obligatorio para cualquier Base de Datos.

Digamos que justo el caso que planteas (el del stock o inventarios) es uno que se ajusta mucho a usar triggers.

Si asumimos, tal y como se dijo antes, vas a crear un campo en la tabla de artículo que te mantenga actualizado el stock de ese artículo hay 2 posibilidades:

1) Enfocar el prigrama desde Delphi (o desde el programa). Debes asegurarte de que cualquier operación que hagas sobre el artículo actualiza el stock. Significa tener eso en cuenta en varias partes del programa y usar transacciones (si o si). Para evitar por ejemplo, que se guarde una venta y por algún error no se actualice el stock.

2) La segunda opción es enfocarlo desde la Base de Datos. La Base de Datos te da la posibilidad de programar una acción cada vez que haces un INSERT, un DELETE o un UPDATE sobre una tabla. La idea es programar esas operaciones en la tabla de VENTAS y COMPRAS para que actualizen el stock. De esta forma desde cualquier lugar donde se modifiquen las ventas (sea desde el programa, desde un Stored procedure, desde una importacion,...) se actualizarán los artículos.

La idea de los triggers es así de sencilla, tal vez sea un poco más complicado programarlos, pero si has trabajado con Stored Procedures te resultará parecido.

Si miras en la wiki, verás que la explicación es sencilla, es más acabo de ver que el ejemplo que viene en la WIKI es justo de actualizar el stock. ;-)
https://es.wikipedia.org/wiki/Trigger_(base_de_datos)

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

Última edición por Neftali [Germán.Estévez] fecha: 21-06-2017 a las 09:03:46.
Responder Con Cita