Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-12-2005
Choclito Choclito is offline
Miembro
 
Registrado: jul 2004
Posts: 169
Poder: 20
Choclito Va por buen camino
Question Problema con la llamada a un Procedimiento almacenado

Hola a todos del foro, comentarles q hice un sistema para que controle la gestion de un almacen todo iva bien pero luego me pidieron que se registre la hora y fecha de ingreso y salida de los usuarios que entren al sistema, utilizando SP de firebird llamaba a los mismos para q se haga el registro de ingresos y salidas del sistema.
El problema esta que los usuarios hacen click derecho sobre el icono del sistema cuando esta minimizado en la barra de tareas o mejor aun directamente apagan la computadora sin haber cerrado el sistema y bueno ahi es donde en la base de datos del sistema no se registra la hora que sale un determinado usuario.
La llamada al Sp de firebird la hice en un boton del menu principal y en el evento onclose del menu principal, mi problema radica en que nose donde colocar la llamada del SP de firebird en los casos q les menciono.
Espero que me hayan entendido y bueno como siempre estare muy agradecido por la ayuda que brinden.
Ahhh para realizar el sistema utilice Delphi 7 , firebird 1.5 y mercury tools
Responder Con Cita
  #2  
Antiguo 02-12-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si apagan sin salir del programa... lo tienes crudo.

Pueden poner un cartel: "Por cada vez que no quede reflejada la hora de salida del sistema... se le descontará xxx euros de su sueldo", verás como no se olvidan

De todas formas, ya en serio, deberías controlar el apagado y guardar el dato antes de cerrar, busca en los foros por "apagar" a ver si encuentras algo.

En principio, mira este hilo por si te sirve.
Responder Con Cita
  #3  
Antiguo 05-12-2005
cahp cahp is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 90
Poder: 21
cahp Va por buen camino
Lo unico que se me ocurre, es capturar la llamada de cierre de windows si apagan el ordenador como es debido, si lo apagan con boton a lo bestia no es posible.

Otra cosa, es si la aplicacion controla quien entra por medio de usuarios, sabes que apaga el ordenador mal. Sabes que un pc ha iniciado la sesion, y no la ha terminado.

Saludos.
Responder Con Cita
  #4  
Antiguo 06-12-2005
Carlos Hurtado Carlos Hurtado is offline
Miembro
 
Registrado: dic 2004
Posts: 30
Poder: 0
Carlos Hurtado Va por buen camino
Windows no cierra mientras no se cierre aplicacion

Hola amigo no se si te servira esta rutina sacada de Trucomania:



Cuando el usuario sale de Windows teniendo nuestra apliacación abierta, es posible que la pille en un mal
momento (sin grabar datos, en medio de un proceso, etc). Esto se puede evitar capturando el mensaje que envia
Windows a todas las apliacaciones cuando el usuario quiere cerrar Windows: el mensaje
WM_QUERYENSESSION

Para capturar el mensaje y enviarlo a nuestro código de tratamiento del mensaje:


Código Delphi [-]
 
     TForm1 = class(TForm)
     ..........
       private
         procedure WMQueryEndSession(var Msg: TWMQueryEndSession); message WM_QUERYENDSESSION;
     ..........
     end;

Es decir, basta con que añadamos en la claúsula Private de la declaración del form la siguiente linea:

Código Delphi [-]
 
    procedure WMQueryEndSession(var Msg: TWMQueryEndSession); message WM_QUERYENDSESSION;

y luego, en la parte implementation, ponemos el código que trate el mensaje:

Código Delphi [-]
 
 
     procedure TForm1.WMQueryEndSession(var Msg: TWMQueryEndSession);
     begin 
       MessageBox(Handle, 'Cierra antes el programa', nil, MB_OK);
       Msg.result := 0;
     end;


Si en lugar de abortar el cierre de Windows, queremos que siga realizandose, basta con que cambiemos el

Código Delphi [-]
Msg.result:=0 por Msg.result:=1.

NOTA: El comportamiento del mensaje difiere en win98 y WinNT, así que mirate la ayuda del mensaje
WM_QUERYENDSESSION.


Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 04:09:33.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi