Ver Mensaje Individual
  #2  
Antiguo 13-11-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Reputación: 24
guillotmarc Va por buen camino
Hola.

No hay ninguna variable que te dé esa información (quizá en IB 7, no lo he utilizado nunca).

Con Firebird 1.5 puedes jugar un poco con la nueva variable current_connection y una tabla auxiliar, para obtener ese resultado.

Añade una tabla CONEXIONES con los campos DIR_IP varchar(15) y CONEXION integer. (el campo CONEXION puede ser la clave primaria)

Al arrancar el programa y abrir la conexión, guardas en la tabla CONEXIONES, la dirección IP de la maquina que ha abierto esa conexion. Esto lo haces con la consulta (como puedes observar, pasamos la dirección IP como parámetro) :

insert into CONEXIONES (DIR_IP, CONEXION) values (:DIR_IP, current_connection)

Ahora, cuando quieras saber la Dirección IP del cliente que ha lanzado el trigger, solo necesitas una consulta del tipo :

select DIR_IP from CONEXIONES where CONEXION = current_connection

Finalmente no olvides eliminar el registro de la tabla CONEXIONES, cuando cierres el programa (antes de cerrar la conexión). Simplemente lanza una consulta del tipo :

delete from CONEXIONES where CONEXION = current_connection

Aunque no lo he probado, debería funcionarte correctamente. Pero recuerda que solo funciona con Firebird 1.5 (las versiones anteriores, no tienen la variable current_connection).

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita