Ver Mensaje Individual
  #11  
Antiguo 20-08-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Reputación: 25
Delphius Va camino a la fama
Cita:
Empezado por sandiamo Ver Mensaje
Hola llevo poco tiempo por el foro y no hago mas que preguntas asi que espero pronto empezar a dar respuestas.
Bueno la cuestion es que tengo una aplicacion multiusuario y me gustaria poder tener registrado que usuario hace alguna modificacion en alguna tabla. Los usuarios de la aplicacion estan en una tabla de Firebird y se validan al iniciar la aplicacion, pero no se si se podria almacenar el nombre de usuario en la entrada del registro de Windows de la aplicacion y utilizarla.
Gracias anticipadas.
Cita:
Empezado por mamaro Ver Mensaje
Lo que el compañero te está diciendo es que crees una tabla en la que almacenes los datos que necesites (Nombre de usuario, fecha, etc), y pongas un disparador a la(s) tabla(s) que realicen la inserción en esa tabla, ejemplo:

Tabla Log
Fecha Timestamp
Usuario Varchar(8)
etc ...

Tabla Cliente
Identificador integer
Nombre varchar(30)
Dirección varchar(50)
etc ...

Disparador
Código SQL [-]Create Trigger REGISTRA_LOG for CLIENTE
active after insert or update or delete position 0
as begin insert into Log (fecha,usuario)
values (current_timestamp,current_user);
end


La versión nueva de Firebird (creo que la 2.1) permite además de disparar eventos al realizar acciones sobre tablas, dispara eventos al loguearse un usuario, al hacer commit, etc.

Saludos
Cita:
Empezado por sandiamo Ver Mensaje
Perdona tienes razon, current _user me da el usuario de la base de datos pero tampoco me vale ya que en la base de datos entro siempre con el usuario por defecto SYSDBA.
Yo no termino de comprenderte... Si ya tienes registrado el nombre de usuario en alguna tabla y si sabes que al momento de entrar al sistema es porque sabes y tienes referencia al usuario. Entonces... cual es tu duda: ¿De donde quieres obtener el nombre de usuario? ¿Para que quieres capturar el nombre de usuario de windows si ya lo tienes en la base de datos?¿Son los mismos?
Me he mareado al intentar entenderte... no termino de comprender...

Y si capturas el nombre mediante el uso de la api de windows como te comentan... y/o que uses current_user igualmente tienes en alguna variable o propiedad dicho nombre...

Y como dijo mamaro... la solución pasa por allí: tiggers/procedimientos almacenados. Independientemente de donde captures el nombre de usuario, debes lanzar ya sea un tigger, un procedimiento almacenado... tu ves...

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 20-08-2007 a las 09:40:02.
Responder Con Cita