| |  |  | Miembros: Mensajes: Temas: Online: Ultimo Miembro: | | |  | | |
 | 
23-06-2008, 16:56:38
|  | Gran Participación en el Foro | | Registrado: jun 2006 Ubicación: San Carlos, VIII Reg. Posts: 415
| | detectar actividad e inactividad en un sistema Estimados foristas y amigos de este gran mundo de vb...
Bueno, he estado lejos de acá y necesito una ayuda que no he encontrado, sé que existe la api o alguna función, pero no sé como empesar, les cuento...
Tengo unos proyectos conectados a access con algunos usuarios, lo que sucede es que access crea los bloqueos y a veces un equipo se cuelga o se pega ya que la bd se encuentra ocupada, necesito hacer en el sistema que cuando el formulario no tenga actividad desconecte la bd (en este caso tengo esa funciòn, cerrando los recordset y connection), pero he oido de una api que es para determinar si existe o no actividad en algun formulario, tambièn se me ocurre la idea hacerlo en el evento mouse_move o cuando se presione cualquier tecla active las conexiones, no sé si esta claro, gracias
Tambien puede ser con un timer, pero no quiero determinar algun tiempo para que se desconecte, eso lo tengo en un login ...
__________________
TAMD MYM
| 
23-06-2008, 22:21:57
|  | Administrator | | Registrado: dic 2002 Ubicación: BURGOS - ESPAÑA Posts: 5.431
| | Re: detectar actividad e inactividad en un sistema No veo claro lo que en realidad deseas; pero como haces alusión al bloqueo de la base de datos, no sé si efectivamente es ése tu problema: cómo bloquear tus conexiones y, lógicamente, dejarlas desbloqueadas en cuanto se realice la grabación que exigía tal bloqueo...
Si fuera ése tu caso, toma nota de este método que yo utilizo para hacer precisamente esa tarea: http://www.foro.vb-mundo.com/f24/blo...495/#post50881 (Bloqueo) | 
24-06-2008, 04:20:28
|  | Gran Participación en el Foro | | Registrado: jun 2006 Ubicación: San Carlos, VIII Reg. Posts: 415
| | Re: detectar actividad e inactividad en un sistema Cita:
Empezado por J.M.Movilla No veo claro lo que en realidad deseas; pero como haces alusión al bloqueo de la base de datos, no sé si efectivamente es ése tu problema: cómo bloquear tus conexiones y, lógicamente, dejarlas desbloqueadas en cuanto se realice la grabación que exigía tal bloqueo...
Si fuera ése tu caso, toma nota de este método que yo utilizo para hacer precisamente esa tarea: http://www.foro.vb-mundo.com/f24/blo...495/#post50881 (Bloqueo) |
Hola Sr, gracias es algo similar, pero mi idea va por otra parte, quiero determinar en algun momento cuando el equipo esta sin actividad (que no exista moviento del mouse o teclado), en ese instante hago el cierre de bloqueo, bueno y lo contrario abro la conexión, he escuchado de una API, a ver que me dicen, gracias ...
__________________
TAMD MYM
| 
24-06-2008, 09:25:56
|  | Administrator | | Registrado: dic 2002 Ubicación: BURGOS - ESPAÑA Posts: 5.431
| | Re: detectar actividad e inactividad en un sistema Supongo que tendrás tus razones para perseguir ese trabajo; pero yo personalmente no entiendo por qué ha de cerrarse una conexión que está utilizando la aplicación de forma habitual. Es necesario cerrar los recordsets, por supuesto, pero yo las conexiones sólo las cierro cuando salgo de la aplicación o cuando el Administrador vaya a hacer la copia de seguridad desde la propia aplicación, asegurándome en este caso de que ya han cerrado la aplicación todos los clientes; en este caso, lógicamente vuelvo a establecer las conexiones al finalizar la copia, para que el Administrador pueda seguir trabajando. Por lo demás, las conexiones permanecen abiertas todo el día (quiero decir, toda la sesión laboral) en todos los equipos de la red, sin que ello suponga ningún riesgo para las bases de datos.
Por eso yo creo que la cuestión de bloqueos tiene que referirse a las tablas; es decir, a los recordsets. | 
24-06-2008, 15:26:39
|  | Gran Participación en el Foro | | Registrado: jun 2006 Ubicación: San Carlos, VIII Reg. Posts: 415
| | Re: detectar actividad e inactividad en un sistema Cita:
Empezado por J.M.Movilla Supongo que tendrás tus razones para perseguir ese trabajo; pero yo personalmente no entiendo por qué ha de cerrarse una conexión que está utilizando la aplicación de forma habitual. Es necesario cerrar los recordsets, por supuesto, pero yo las conexiones sólo las cierro cuando salgo de la aplicación o cuando el Administrador vaya a hacer la copia de seguridad desde la propia aplicación, asegurándome en este caso de que ya han cerrado la aplicación todos los clientes; en este caso, lógicamente vuelvo a establecer las conexiones al finalizar la copia, para que el Administrador pueda seguir trabajando. Por lo demás, las conexiones permanecen abiertas todo el día (quiero decir, toda la sesión laboral) en todos los equipos de la red, sin que ello suponga ningún riesgo para las bases de datos.
Por eso yo creo que la cuestión de bloqueos tiene que referirse a las tablas; es decir, a los recordsets. | Estimado es muy amable en atender mi duda, lo que sucede yo cierro las conexiones y recordset, por que a veces los equipos que trabajan en access alguno de ellos se bloquean, por lo que sé el access genera los lbd los iconos con candado, al momento de cerrar la conexion se desaparecen estos, es por eso que uso el siguiente código, al menos que sólo use el cierre de los recordset
Public Sub cerrarcn()'cerrar conexion
On Error Resume Next
bas.Close
bas_prov.Close
bas_loc.Close
karloc.Close
basimp.Close
cn.Close
cm.Close
MDIGestion.Caption = "Gestion Compras - SISTEMA DESCONECTADO..."
Set bas = Nothing
Set bas_prov = Nothing
Set bas_loc = Nothing
Set karloc = Nothing
Set basimp = Nothing
Set cn = Nothing
Set cm = Nothing
DoEvents
'cerrarcn = True
'Controlador de errores
'If Err.Number <> 0 Then
' CerrarDbase = False
' Debug.Print "Error: " & Err.Number & "= " & Err.Description & "\Función CerrarDbase"
' Err.Number = 0
'End If
End Sub
Public Sub cerrarrs() 'Función para cerrar recordset de ADO
'Si ocurriera un error seguir ejecutando _
la función
On Error Resume Next
Rsdyn.Close
Rprov.Close
Rprov1.Close
rloc.Close
fmc.Close
Rs1.Close
Rs2.Close
Kar.Close
Prin.Close
Prin1.Close
Rloc1.Close
Set Rsdyn = Nothing
Set Rprov = Nothing
Set Rprov1 = Nothing
Set rloc = Nothing
Set fmc = Nothing
Set Rs1 = Nothing
Set Rs2 = Nothing
Set Kar = Nothing
Set Prin = Nothing
Set Prin1 = Nothing
Set Rloc1 = Nothing
DoEvents
'cerrarrs = True
'Controlador de errores
'If Err.Number <> 0 Then
' CerrarTabla = False
' Debug.Print "Error: " & Err.Number & "= " & Err.Description & "\Función CerrarTabla"
' Err.Number = 0
'End If
End Sub
__________________
TAMD MYM
| 
25-06-2008, 05:54:51
|  | Moderador | | Registrado: nov 2007 Ubicación: Argentina Posts: 388
| | Re: detectar actividad e inactividad en un sistema Hola,si,entiendo lo que queres hacer,cuando se abre la base se genera un archivo de bloqueo y si se mata el programa o se apaga la pc el archivo queda y despues al abrir otra vez el programa no se puede usar la base porque esta bloqueada,yo tambien habia penado en eso para un programa que hice y lo que hice fue(no se si es lo ideal ,pero funciona muy bien) que cada vez que el programa se ejecuta ,si encuentra el archivo de bloqueo ,que lo borre asi se puede trabajar siempre...
saludos.
__________________ Todos somos ignorantes; lo que pasa es que no todos ignoramos las mismas cosas - Albert Einstein | 
25-06-2008, 10:15:28
|  | Administrator | | Registrado: dic 2002 Ubicación: BURGOS - ESPAÑA Posts: 5.431
| | Re: detectar actividad e inactividad en un sistema Claro... Ésa es mi idea, que se ejecute automáticamente el desbloqueo cuando entras en un ambiente en que se precise el previo bloqueo... Pero, ¡ojo!!! Primero, sólo cuando se precise el bloqueo; y segundo, sólo cuando el bloqueo lo haya generado yo... Porque si desbloqueo indiscriminadamente, ¿para qué me sirve el previo bloqueo? Por eso yo indico quién lleva a cabo la acción de bloquear, grabando en el campo correspondiente no un True o False, sino el número del usuario que bloquea: Cuando se concluye la tarea que exige el bloqueo, ese campo se convierte en 0 (cero) para controlar que en la próxima entrada no conste como bloqueado. | | Herramientas | | | | Desplegado | Mode Lineal |
Normas de Publicación
| no Puedes crear nuevos temas no Puedes responder a temas no Puedes adjuntar archivos no Puedes editar tus mensajes Código [IMG] está habilitado Código HTML está deshabilitado | | | La franja horaria es GMT. Ahora son las 00:56:16.
Powered by vBulletin® Version 3.6.8 Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design
|  |