PDA

Ver la Versión Completa : trigger, store produred y transacciones


@-Soft
17-06-2003, 14:42:12
hola

mi preguntas son un poco pañaleras pero disculpenme.

1.- ¿Que es un trigger? ¿para que sirven? un ejemplo sencillo

2.- ¿Que es un Stored Procedured? ¿para que sirven? un ejemplo sencillo

3.- ¿Que es un Transaction? ¿para que sirven? un ejemplo sencillo

por favor les pido que sean lo mas especifico posible, ya que es la primera ves que toco este tema y la verdad es que no se nada de estas funciones.

gracias.

kinobi
17-06-2003, 15:22:53
Hola,

Conceptos básicos (http://www.interbase.com.mx/articulos/conceptos.php)

Triggers (http://www.interbase.com.mx/articulos/triggers.php)

Procedimientos almacenados (http://www.interbase.com.mx/articulos/procedimientos.php)

Transacciones (http://www.clubdelphi.com/users/kinobi/)

y por último ...

La sección InterBase del Club (http://www.clubdelphi.com/ib/)

Saludos.

kinobi
17-06-2003, 18:18:41
Hola,

me acabo de dar cuenta que no especifícas la base de datos. Las direcciones de mi mensajes anterior son referidas a InterBase.

Saludos.

__cadetill
17-06-2003, 22:22:14
Hola

A ver si logro esplicarme :cool:

1.- Trigger : lo puedes ver como un evento en Delphi, es decir, son procedimientos que realiza (si los programas) la Base de Datos al darse una situacion en concreto. Tienes, almenos en Interbase, 6 tipos de "eventos", el before y after insert, el before y after update y el before y after delete. Es decir, acciones que se realizan despues o antes de una insercion, modificacion o eliminacion. Para que sirven? Bueno, esto lo veras mejor con un ejemplo. Supongamos que el SGBD no tiene integridad referencial y, tenemos dos tablas maestro - detalle (facturas y detalle de facturas) y realizamos una operacion en la cabecera que tiene que repercutir en el detalle (como el borrado de la cabecera). Si realizamos el borrado de la cabecera, es de suponer que hay que borrar el detalle, pues se podria programar el trigger before delete de la cabecera para que borrase todo el detalle automaticamente.

2.- StoredProcedures : son procedimientos o funciones que los realiza el propio SGDB. Para que sirven. Pues no se, para muuuchas cosas. Desde un listado que si lo realiza en cliente le puede costar muuucho en comparacion a si lo realiza en servidor, hasta hacer que te devuelva el siguiente numero de registro en una tabla, .... no se, muchas cosas

3.- Transacciones : esto, para que lo entiendas, es un "estado" en que los datos que introduce el programa a la BD, todavia no estan físicamente en la BD, tu inicias una transaccion, metes datos (o borras o modificas) y, hasta que no confirmas la transaccion, estos no se graban realmente en ella. Tambien puedes rechazarla, of course. Para que sirven? Tipico ejemplo de banco. Supon que tienes dos cuentas corrientes y haces un traspaso de una a la otra. Primero se realiza la resta en la CC 1 y luego la suma en la CC 2, ok? Pues bien, imaginate que antes de que se realice el segundo paso (la suma), cae el servidor por el motivo que sea, pues bien, tu te quedarias sin ese dinero, ya que no esta en la CC1 (se realizo la resta) ni en la CC 2 (no se llego ha realizar la suma). Si se protege ese proceso en una transaccion, hasta que no se confirma, no se realiza realmente la salida de dinero de CC1

Bueno, espero que lo entiendas (porque lo que es yo, no :p)

Cabanyaler
18-06-2003, 10:16:36
1.- ¿Que es un trigger? ¿para que sirven? un ejemplo sencillo

Procedimiento o función que se dispara a nivel del SGDB al producirse determinado evento.
El ejemplo depende del SGBD utilizado, pero no deja de ser una porción de código.
Yo particularmente no soy muy amigo de ellos, sobre todo de los anidados. Caperucita puede convertirse en lobo a poco que te despistes.


2.- ¿Que es un Stored Procedured? ¿para que sirven? un ejemplo sencillo

Procedimiento o función que se dispara a nivel del SGDB a requerimiento del propio programador.

El ejemplo depende del SGBD utilizado.



3.- ¿Que es un Transaction? ¿para que sirven? un ejemplo sencillo

Código protegido que ataca y modifica la BD y que se ejecuta en su totalidad o en caso de fallo deja la BD en su estado original.
P.e. (El tipico de la libreta de banco). ¿Que te ocurriría si sacas dinero de un cajero y justo antes de que la máquina te dé los billetes y justo después de realizar la resta en tu saldo se produce un error en el SW?
Pues ese algoritmo "lo encapsulas" dentro de una transacción y, o se ejecutra todo ok!, o no se ejecuta nada.


Puedes encontrar la solución a estas preguntas en cualquier libro de BBDD básico. ;)