Store Procedure

Algo corto quisiera que me explicaras que es store procedure para que sirve y si se puede utilizar en Foxpro a ver si me puedes indicar donde encontrar temas relacionados de store procedure pero para visual fox ademas a ver si me envías algún ejemplo

1 respuesta

Respuesta
1
Los procedimientos almacenados (store procedure) en VFP se llaman desencadenantes (TRIGGER), se crean con "CREATE TRIGGER" y sirven para interceptar aquellos eventos que hacen que se eliminen (DELETE), agreguen (INSERT) o cambien (UPDATE) los registros de una tabla. Los desencadenadores sólo pueden crearse para una tabla que se ha agregado a una base de datos.
El desencadenante DELETE se activa cuando:
-Se ejecuta DELETE.
-Se marca un registro para eliminar desde el menú Tabla de una ventana Examinar o Editar.
(Si ejecuta ZAP o PACK, no se activa).
El desencadenante INSERT se activa cuando:
-Se ejecuta APPEND FROM.
-Se ejecuta APPEND FROM ARRAY.
-Se ejecuta APPEND BLANK.
-Se anexa un registro desde el menú Tabla de una ventana Examinar o Editar.
-Se ejecuta IMPORT.
-Se ejecuta INSERT ? SQL.
-Se ejecuta RECALL.
-Se desmarca un registro en el menú Tabla de una ventana Examinar o Editar.
El desencadenante UPDATE se activa cuando:
-Se ejecuta GATHER.
-Se ejecuta REPLACE.
-Se ejecuta REPLACE FROM ARRAY.
-Se ejecuta UPDATE ? SQL.
-Otro evento que causa que se modifique un registro, por ejemplo, cuando un formulario cambia el contenido de un campo.
Adicionaklmente, las reglas siguientes se aplican a desencadenantes:
-No es posible ejecutar INSERT para una tabla con un desencadenante. Sin embargo, puede utilizarse INSERT - SQL.
-No se producen desencadenamtes si se actualiza un registro marcado para eliminar.
-Es posible que un desencadenante no se active inmediatamente, según el modo actual de almacenamiento en búfer: Si está activo el almacenamiento de tablas en búfer, se producirá el desencadenante UPDATE cuando se ejecute TABLEUPDATE( ) y se actualizará cada registro de la tabla almacenado en búfer.
Un ejemplo:
El ejemplo siguiente crea un desencadenante UPDATE que impide escribir valores mayores de 50 en el campo maxordamt de la tabla customer. Se genera un mensaje de error cuando se ejecuta el primer comando REPLACE ya que el valor del campo maxordamt es mayor de 50. El segundo comando REPLACE no genera un error porque el valor del campo maxordamt es menor o igual que 50.
Close databases
USE customer
CREATE TRIGGER ON customer FOR UPDATE AS maxordamt <= 50
REPLACE maxordamt WITH 60 && Muestra un mensaje de error
? maxordamt
REPLACE maxordamt WITH 50 && El valor es aceptado
? Maxordamt

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas