Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-02-2010
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 20
mjjj Va por buen camino
Firebird 2.0
Responder Con Cita
  #2  
Antiguo 24-02-2010
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 20
mjjj Va por buen camino
Voy a tratar de explicar esto con un poco mas de detalle.

Utilizo Firebird 2.0, y necesito un trigger que se dispare al momento de modificar una la detrendiciones, expecificamente el campo imagen: Varchar (1).

Algunos otros campos de importancia dentro de la tabla estan:

nren : Integer
ncorr: Integer
usuario: String
f_b: char (1)

Desde la aplicación se modifica el registro con esta sentencia.

Código SQL [-]
update detrendiciones set imagen =:imagen
where nren =:nren and ncorr =:ncorr and f_B =:f_B

Ahora bien, el trigger debe modificar el campo NImagen: Integer, autoincrementado por un generador, el mismo numero para todos los registros que cumplan con las condiciones de los campos usuario, nren, f_b y ncorr, asociado a la modificación por parte de la aplicación.

Se puede hacer esto?
Espero que ahora se entienda mi consulta.

Saludos
Responder Con Cita
  #3  
Antiguo 24-02-2010
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.740
Poder: 26
ContraVeneno Va por buen camino
Según veo, estas haciendo una revisión del tipo "Si esto se cumple, haz el update"; tienes que considerar que la instrucción "update" ya la tienes definida y es está la que ejecuta el disparador, vamos, que ya la tienes.

Lo que tendrías que hacer, es una revisión del tipo: "Si esto no se cumple, no hagas nada y te sales" y en el "te sales", entonces cancelas (rollback) la instrucción "update" que intentabas realizar.

Código:
trigger begin
 if Dato No Valido begin
  RollBack
  Mensaje Error
  Return //salirse del trigger
 end  
 
 Update tabla
 campo = valor

end
__________________

Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Que es el update 3? Debo descargar el update 3? Nicomaco Varios 4 23-04-2009 00:53:24
deadlock update conflict with concurrent update! JuanErasmo Firebird e Interbase 6 10-07-2008 20:58:10
Un trigger que dispara un procedimiento que dispara un trigger... sitrico Firebird e Interbase 5 04-06-2007 22:05:13
UPDATE con seccion llamada UPDATE sql's MyDAC karlaoax SQL 4 25-04-2007 22:10:50
Trigger Before (Insert,update,delete)? estebanx MS SQL Server 2 25-05-2006 15:58:19


La franja horaria es GMT +2. Ahora son las 00:55:37.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi