En el Firebird hay unas variables cuyos valores son asignados por el propio Firebird. No los asigna ni el programador ni el usuario sino el Firebird. Esas variables reciben el nombre de variables de contexto. Las que pueden ser utilizadas en los SELECTs son las siguientes:

CURRENT_CONNECTION. Cada conexión que se realiza a una Base de Datos tiene un número único y esta variable nos dice cual es ese número.

CURRENT_DATE. Nos dice cual es la fecha que tiene el Servidor

CURRENT_ROLE. Todos los usuarios pueden pertenecer a un rol o a varios roles o a ningún rol. Al conectarse a la Base de Datos pueden hacerlo especificando con cual rol se están conectando. Esta variable nos dirá el nombre del rol que usaron al conectarse. Si se conectaron sin usar un rol entonces mostrará la palabra NONE.

CURRENT_TIME. Nos dice cual es la fecha que tiene el Servidor.

CURRENT_TIMESTAMP. Nos dice cuales son la fecha y la hora que tiene el Servidor.

CURRENT_TRANSACTION. Cada transacción tiene un número único que la identifica y la distingue de todas las demás transacciones. Esta variable de contexto nos dice cual es el número de la transacción actual.

CURRENT_USER. Nombre del usuario que actualmente está conectado a la Base de Datos.

Veamos algunos ejemplos de uso:

SELECT
   CURRENT_USER,
   CURRENT_TIMESTAMP
FROM
   RDB$DATABASE

IF (CURRENT_USER = ‘ADMINISTRADOR’) THEN
   DELETE FROM CLIENTES WHERE CLI_IDENTI = 17
ELSE
   EXCEPTION E_SOLO_ADMINISTRADOR_PUEDE_BORRAR

Resumiendo:

  • Los valores de las variables de contexto son puestos por el Firebird, no por el programador ni por el usuario
  • Las variables de contexto sirven para conocer:
    • El número de la conexión actual
    • La fecha actual
    • El rol que el usuario usó para conectarse a la Base de Datos
    • La hora actual
    • La fecha y la hora actuales
    • El número de la transacción actual
    • El nombre del usuario que está conectado a la Base de Datos

 

Anuncios