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 03-08-2004
Carlos de Pablo Carlos de Pablo is offline
Registrado
 
Registrado: ago 2004
Posts: 4
Poder: 0
Carlos de Pablo Va por buen camino
declarar Cursor en trigger

He intentado crear un cursor en un trigger (interbase 6.0) pero al querer grabarlo me indica error, ya sea si el declare cursor lo coloco antes del BEGIN entonces me marca error en el nombre del cursor, si lo coloco despues del begin entonces marca error en declare.. alguien sabe como colocarlo correctamente
Responder Con Cita
  #2  
Antiguo 03-08-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cómo estas tratando de declarar el cursor?

Exactamente que uso pretendes darle al cursor?

Te recomiendo colocar aqui un trozo de código (entre etiquetas code) para verlo.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 03-08-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cool

¿Leiste esto?

Cita:
Empezado por jachguate
(entre etiquetas code)
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #4  
Antiguo 04-08-2004
Carlos de Pablo Carlos de Pablo is offline
Registrado
 
Registrado: ago 2004
Posts: 4
Poder: 0
Carlos de Pablo Va por buen camino
El codigo seria el siguiente....

Código:
CREATE TRIGGER DETALLE_SERVMAQTRIGGER1 FOR DETALLE_SERVMAQ AFTER UPDATE POSITION 0 AS
DECLARE VARIABLE CANTIDAD NUMERIC(14,3);
BEGIN
  CANTIDAD = NEW.CANTIDAD_SERVMAQ;
 
  DECLARE SALIDAS CURSOR FOR
  SELECT 
	SALIDAS_DETENT, CANTIDAD_DETENT, KEY_DETENT
  FROM 
	DETALLE_ENTRADAS
  WHERE 
	KEY_MATERIAL = NEW.KEY_MATERIAL AND
	((CANTIDAD_DETENT-SALIDAS_DETENT) > 0)
  ORDER BY
	FECHA_DETENT;
 
  OPEN SALIDAS;
 
  FETCH SALIDAS INTO :SalidasDet, :CantidadDet, keyEnt;

  WHILE (!SQLCODE) 
  BEGIN 
	------- // codigo
	FETCH SALIDAS INTO :SalidasDet, :CantidadDet, keyEnt;
  END

  CLOSE SALIDAS;

END
sorry ya voy aprendiendo....
Responder Con Cita
  #5  
Antiguo 04-08-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cool

Te funcionaría:

Código SQL [-]
Create Trigger Detalle_servmaqtrigger1 
   for Detalle_ServMaq 
 After update
       Position 0 

AS

Declare Variable SalidasDet TipoDato;
Declare Variable CantidadDet TipoDato;
Declare Variable KeyEnt TipoDato;

Begin
  Cantidad = new.Cantidad_ServMaq;
  for Select Salidas_DetEnt, Cantidad_DetEnt, Key_DetEnt
        from Detalle_Entradas
       where Key_Material = New.Key_Material
         and ((Cantidad_DetEnt - SalidasDetEnt) > 0) 
       order by fecha_Detent
        into :SalidasDet, :CantidadDet, KeyEnt 
  do
    CualquierCosa;
end

También he declarado las variables, sin las que no funcionaría. Por supuesto que lo he hecho en el bloc de notas, asi que podria tener errores... pero la idea es esa.

(por cierto.... esta vez, he usado la etiqueta [sql], por ello es que la sintaxis está resaltada.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
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


La franja horaria es GMT +2. Ahora son las 09:42:01.


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