Utilizar los procedimientos SYSDBOPEN y SYSDBCLOSE

Utilizar los procedimientos SYSDBOPEN y SYSDBCLOSE

22 diciembre, 2021 ARTÍCULOS 0

En ocasiones queremos ejecutar ciertas cosas para algunos usuarios cuando se conectana  la base de datos, especialmente configuraciones de entorno que no se puedan cambiar en la aplicación que se conecta.

Para ello Informix dispone de una opción, que es crear el procedimiento usuario.sysdbopen().

Este procedimiento se ejecuta cada vez que un usuario se conecta con DATABASE o CONNECT (no funciona si, una vez conectado, lanzamos una consulta remota de la forma basededatos@servidor:tabla).

A diferencia de otros procedimientos almacenados, en estos casos se pueden crear diferentes procedimientos para cada usuario. Además, a pesar de que cualquier cambio en las variables de entorno como PDQPRIORITY es local en otros procedimientos, cuando se ejecuta el cambio dentro de estos procedimientos es persistente hasta que se cambia o se cierra la sesión.

Además de sysdbopen, se dispone del procedimiento sysdbclose que se ejecuta cuendo el usuario ejecuta CLOSE DATABASE o DISCONNECT (o bien cierra la sesión sin cerrar nada de forma que Informix lo ejecuta de forma implícita).

Tenemos varias opciones de creación:

usuario.sysdbopen: este procedimiento se ejecuta cuando «usuario» se conecta a la base de datos.
public.sysdbopen: si no existe ninguna opción usuario.sysdbopen para el usuario que se conecta se utiliza este procedimiento por defecto.
usuario.sysdbclose: este procedimiento se ejecuta cuando «usuario» cierra la base de datos.
public.sysdbclose: si no existe ninguna opción usuario.sysdbclose para el usuario que se desconecta se utiliza este procedimiento por defecto.

Hay que tener cuidado al definir sysdbopen, ya que si el procedimiento falla podemos quedarnos sin entrar en la base de datos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.