Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Algunos triggers que desaparecen

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Algunos triggers que desaparecen Responder citando

Buenas,
tengo un problema de lo mas de extraño.
Ejecuto un script en el EMS SQL MANAGER FOR FIREBIRD en donde creo unos procedimientos almacenados. Todo sale bien y al refrescar la base de datos me muestra bien los triggers, pero, al hacer click sobre ellos algunos desaparecen mostrando el siguiente mensaje:

Trigger "INSERT_SUJETO on SUJETO" is unavailable in database.
Push the Refresh button or f5 key to refresh the dabase tree.

Lo peor de todo es que despues de refrescar los procedimientos vuelven a aparecer.

No tienen ningun error de sintaxis ni nada.

Les dejo parte del script:

Código:


CONNECT 'D:\TESIS\DATA BASE\siosac.fdb'
USER 'SYSDBA' PASSWORD 'masterkey';



SET TERM @;


CREATE TRIGGER insert_categoria FOR categoria ACTIVE
       BEFORE INSERT
AS
  DECLARE VARIABLE num_reg INTEGER;
BEGIN
  new.id_categoria = NEXT VALUE FOR gen_categoria;
 
  SELECT COUNT(*)
  FROM categoria
  WHERE nombre LIKE new.nombre
  INTO :num_reg;

  IF (num_reg <> 0) THEN
    EXCEPTION uq_categoria_except;
END@


CREATE TRIGGER insert_grupo FOR grupo ACTIVE
       BEFORE INSERT
AS
  DECLARE VARIABLE num_reg INTEGER;
BEGIN
  new.id_grupo = NEXT VALUE FOR gen_grupo;
 
  SELECT COUNT(*)
  FROM grupo
  WHERE nombre LIKE new.nombre
  INTO :num_reg;

  IF (num_reg <> 0) THEN
    EXCEPTION uq_grupo_except;
   
  SELECT COUNT(*)
  FROM categoria
  WHERE id_categoria = new.categoria
  INTO :num_reg;
 
  IF (num_reg = 0) THEN
    EXCEPTION fk_grupo_categoria_except;

END@



CREATE TRIGGER insert_clase FOR clase ACTIVE
       BEFORE INSERT
AS
  DECLARE VARIABLE num_reg INTEGER;
BEGIN
  new.id_clase = NEXT VALUE FOR gen_clase;

  SELECT COUNT(*)
  FROM clase
  WHERE nombre LIKE new.nombre
  INTO :num_reg;

  IF (num_reg <> 0) THEN
    EXCEPTION uq_clase_except;

  SELECT COUNT(*)
  FROM grupo
  WHERE id_grupo = new.grupo
  INTO :num_reg;

  IF (num_reg = 0) THEN
    EXCEPTION fk_clase_grupo_except;

END@




/*ESTE ES EL QUE DESAPARECE*/

CREATE TRIGGER insert_sujeto FOR sujeto ACTIVE
       BEFORE INSERT
AS
  DECLARE VARIABLE num_reg INTEGER;
BEGIN
  new.id_sujeto = NEXT VALUE FOR gen_sujeto;

  SELECT COUNT(*)
  FROM sujeto
  WHERE nombre LIKE new.nombre
  INTO :num_reg;

  IF (num_reg <> 0) THEN
    EXCEPTION uq_sujeto_except;

  SELECT COUNT(*)
  FROM clase
  WHERE id_clase = new.clase
  INTO :num_reg;

  IF (num_reg = 0) THEN
    EXCEPTION fk_sujeto_clase_except;

END@





/*ESTE TAMBIEN DESAPARECE*/

CREATE TRIGGER insert_revision FOR revision ACTIVE
       BEFORE INSERT
AS
  DECLARE VARIABLE num_reg INTEGER;
BEGIN
  new.id_revision = NEXT VALUE FOR gen_revision;

  SELECT COUNT(*)
  FROM visita
  WHERE id_visita = new.visita
  INTO :num_reg;

  IF (num_reg = 0) THEN
    EXCEPTION fk_revision_visita_except;

  SELECT COUNT(*)
  FROM usuario
  WHERE id_usuario = new.usuario
  INTO :num_reg;

  IF (num_reg = 0) THEN
    EXCEPTION fk_revision_usuario_except;

END@


SET TERM ;@

COMMIT WORK;



Gracias de antemano.
_________________
Dios te ama.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Saludos, prueba a poner un commit entre trigger y trigger.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.