Me estoy dando cuenta de una cosa pero no sé por dónde coger el problema. Estoy haciendo pruebas con EMS SQL Manager; he eliminado los triggers que he descrito antes para poder ver el contenido de las tablas y evidentemente ahora no da error. Sin embargo me ha llamdo la atención una cosa.
Me conecto a la BB.DD. y ejecuto este query que, más o menos, va dentro del primer trigger:
Código SQL
[-]SELECT * FROM MON$ATTACHMENTS
y curiosamente me devuelve dos filas:
Y si abro cualquier tabla de la BB.DD. y ejecuto el mismo query se añade un tercera fila:
por lo tanto, y dado que esa tabla MON$ATTACHMENTS añade una fila cada vez que se abre una tabla o query, el campo MON$ATTACHMENT_ID no puede ser el que se use para controlar cuantas veces se conecta un usuario. Y el problema que veo es que no hay ninguna columna de esa tabla que pueda usarse para controlar ese acceso único para cada usuario porque la segunda columna MON$SERVER_PID tiene siempre ese mismo valor, que imagino variará cuando se vuelva a encender el PC; acaso una combinación de MON$ATTACHMENT_ID y MON$STATE pudiera ser válida.