PDA

Ver la Versión Completa : Database trigger cómo desactivar


Tcmn
10-11-2023, 04:08:39
Hola a todos, tengo años usado Firebird y me han sido muy utiles los procedures que ya saben que nos ayudan mucho para hacer calculos; y uso mucho los triggers en las tablas al insertar, actualizar o eliminar registros y me han sido muy útiles. Sin embargo, hoy por primera vez me anime a usar un database trigger que se dispara al conectarse a la base de datos. Mis primeras pruebas funcionaron muy bien. Sin embargo, despues de usarlo un rato y meter informacion al sistema metí una información por error que al querer abrir de nuevo la base de datos no puedo conectarme porque hay un error en la conversión de datos. El problema es que quiero convertir un texto en fecha y no se puede.

Sin embargo, en resumen mi pregunta es ¿existe alguna manera de desactivar ese trigger que se dispara al intentar conectar con BD para que me permita entrar y arreglar el error en el procedimiento almacenado que presenta la falla?

Lo veo imposible porque se supone que debo conectarme con BD para manipularla pero quisiera saber si de casualidad existe alguna manera o ¿ya "cerre por dentro" mi base de datos?

Casimiro Notevi
10-11-2023, 10:34:30
Creo que, por ejemplo, desde la línea de comandos, terminal, consola o como lo llames, ejecuta con isql para deshabilitarlo:
ALTER TRIGGER nombre_del_trigger INACTIVATE;

Casimiro Notevi
10-11-2023, 15:16:51
Se me olvidó mencionar que debes usar el parámetro -nodbtriggers, algo así como:
isql -nodbtriggers basedatos.fdb

Tcmn
17-11-2023, 14:24:40
Se me olvidó mencionar que debes usar el parámetro -nodbtriggers, algo así como:
isql -nodbtriggers basedatos.fdb

Hola Casimiro. Te agradezco en gran manera. Lo probaré mañana que regrese al trabajo. Justo después de enviar consulta salí de vacaciones y mañana regreso a la chamba. Por eso no había contestado. Les aviso cualquier novedad. Buen dia

Tcmn
18-11-2023, 17:37:50
Hola Casimiro ya intenté la sentencia que amablemente me dijiste pero me pide conectarme primero y al intentar conectarme me marca el mismo error que IBEXPERT y no me deja. Sabras alguna otra opcion?

Casimiro Notevi
18-11-2023, 18:46:05
Creo que algo no has hecho bien:
isql -nodbtriggers -user SYSDBA -password masterkey employee.fdb

Tcmn
18-11-2023, 19:26:45
Ya intenté pero no me deja, te comparto captura de lo que me dice.

https://drive.google.com/file/d/1U07ADNyz1fovIJpAj4jX7HJ_ALvLksd7/view?usp=sharing

Tcmn
18-11-2023, 19:40:30
Por si hay problemas para ver con el enlace anterior te mando uno diferente https://photos.app.goo.gl/JJFzp8Vtj7c32n5S7

Tcmn
18-11-2023, 19:41:24
https://photos.app.goo.gl/JJFzp8Vtj7c32n5S7 aquí está, creo que en el anterior no se añadió.

Casimiro Notevi
18-11-2023, 19:41:59
Así no, porque ya estás conectado.
Tienes que conectar tal y como te he indicado, desde la línea de comandos.

Casimiro Notevi
18-11-2023, 19:51:51
c:\ isql -nodbtriggers -user sysdba -password masterkey unabasedatos.fdb

Tcmn
18-11-2023, 20:14:36
Gracias por tu paciencia Casimiro, ya entendí y ya pude ejecutar la sentencia que me dijiste. Te mando captura de lo que pasa. https://drive.google.com/file/d/1UXkh2u3MKzjVFRerJ8DUa_nrmFpMw1ig/view?usp=drive_link
Y ahora si ya puedo conectarme sin problemas. Hace años me habia pasado algo similar con una base de datos cuando empecé a conocer los triggers al conectar y desconectarse a base de datos y me quedé 'traumado' al punto que habia renunciado a usar esos triggers pero gracias a tu ayuda ya ví que sí existe una manera de desactivar estos triggers. Muchisiiiiiiimas gracias. Espero les sirva a otros.

Casimiro Notevi
18-11-2023, 20:17:14
Me alegra de que te haya servido ^\||/
Todos los días se aprende algo :)