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 13-11-2007
fedat fedat is offline
Registrado
 
Registrado: ene 2007
Posts: 3
Poder: 0
fedat Va por buen camino
Actualizacion de un campo desde un trigger

Hola amigos del foro!

Por favor quien me puede resolver la siguiente inquietud:

Desde un trigger necesito hacer un llamado a un procedimiento almacenado que me retorna un valor para actualizar un campo en la tabla que ejecuta el trigger.

El procedimiento almacenado lo tengo listo y me retorna el valor correcto, ese valor necesito insertarlo en un campo mediante un trigger after insert-update que llama al procedimiento almacenado que les comente.

Recibo comentarios al respecto, muchas gracias!!!
Responder Con Cita
  #2  
Antiguo 14-11-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
No lo entiendo

Y no creo que esté bien diseñado el asunto.

Se realiza una modificación en una tabla.
1 - se graba la modificación
2 - Salta el disparador after insert-update y éste provocará una actualización en la misma tabla
3 - Volvemos al paso 1

Es lo que se llama recursión. Normalmente los trigger after sirven para modificar otras tablas.

Pero vamos..
Código SQL [-]
declare variable valor integer;
begin

execute procedure Miproc returnings_values(:valor);

update Mitabla set micampo = :valor;
end;

Yo intentaría hacerlo en el before insert-update:
[sql]
Código SQL [-]
delcare variable valor integer;
begin

execute procedure Miproc returnings_values(:valor);

new.campo = :valor;  
/* aquí actualizo el valor, como es un trigger "before" puedo sustituir el 
   futuro valor que tendrá, me ahorro el trigger after insert-update y además
   evito recursión.

   Si el Sp necesita un valor de un campo de este mismo registro, se lo puedes
   pasar como parámetro con old.Nombrecampo
*/
end;
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 14-11-2007
fedat fedat is offline
Registrado
 
Registrado: ene 2007
Posts: 3
Poder: 0
fedat Va por buen camino
Solucionado

Amigos muchas gracias.

Verificando hilos anteriores encrontre la respuesta.

http://www.clubdelphi.com/foros/showthread.php?t=12337

Tenias razon era en un BEFORE.
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
trigger a nivel de campo carlomagno Firebird e Interbase 19 23-06-2011 17:39:49
Trigger y campo CLOB juanmdq Oracle 1 15-12-2006 14:01:56
Problemas con campo BLOB en Trigger AGAG4 Firebird e Interbase 0 06-12-2004 16:27:16
un trigger de actualizacion santiago14 Firebird e Interbase 2 30-11-2004 03:57:19
Trigger de Actualización subzero Firebird e Interbase 8 12-02-2004 21:22:28


La franja horaria es GMT +2. Ahora son las 13:36:18.


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