Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Usuario conectados a una BD Firebird (https://www.clubdelphi.com/foros/showthread.php?t=93448)

Gregorio Cíber 30-09-2018 22:51:26

Usuario conectados a una BD Firebird
 
Hola amigos.
Según la documentación de Firebird, si se quieren ver los usuario conectados en un monento concreto a una BD habría que hacer algo parecido a esto

Código Delphi [-]SELECT ATT.MON$USER, ATT.MON$TIMESTAMP, ATT.MON$REMOTE_HOST, ATT.MON$REMOTE_PROCESS FROM MON$ATTACHMENTS ATT WHERE (ATT.MON$STATE = 1)


Bien, pues tenga las conexiones que tenga a la BD en mi ordenador sólo aparece información de la conexión del programa que lo ejecuta. Es decir, si lo hago desde IBExpert aparece usuario, host, etc. con que se conectó IBExpert. Si ho hago desde mi aplicación, lo mismo. Si tengo una segunda instancia de la aplicación, idem, etc.
Estoy probando, como he dicho antes, desde un solo ordenador, pero en una red pasa lo mismo.
Supongo que si hay tres conexiones a la DB debería aparecer información de las tres, ¿no?.
Uso Firefird 3.0.3

Saludos y gracias anticipadas.

Casimiro Notevi 30-09-2018 23:49:36

Cita:

Empezado por Gregorio Cíber (Mensaje 528712)
Supongo que si hay tres conexiones a la DB debería aparecer información de las tres, ¿no?.

Efectivamente.

manelb 01-10-2018 07:40:20

Yo ejecuto esta sentencia pero si la condición where que tu pones y devuelve la información que espero: las conexiones con la base de datos.

No sé ahora mismo el campo MON$STATE a que hace referencia.
Voy a mirarlo.


Saludos

Casimiro Notevi 01-10-2018 08:50:57

Código SQL [-]
select count(*) from MON$ATTACHMENTS

lucho6007 01-10-2018 14:39:44

El problema lo tenés al final de la sentencia SQL:

Código SQL [-]
SELECT ATT.MON$USER,        ATT.MON$TIMESTAMP,         ATT.MON$REMOTE_HOST,        ATT.MON$REMOTE_PROCESS FROM MON$ATTACHMENTS  ATT WHERE (ATT.MON$STATE = 1)


eliminá el WHERE (ATT.MON$STATE = 1)


La sentencia quedaría:
Código SQL [-]
SELECT ATT.MON$USER,        ATT.MON$TIMESTAMP,         ATT.MON$REMOTE_HOST,        ATT.MON$REMOTE_PROCESS FROM MON$ATTACHMENTS  ATT

Gregorio Cíber 01-10-2018 14:51:52

Gracias a ambos por responder.
No obtante no va, o no lo consigo yo, que todo puede ser.
Con
Código SQL [-]
select count(*) from MON$ATTACHMENTS
aparece desde IBExpert 3. Da igual que hay una, dos o más instancias del programa corriendo.
Con
Código SQL [-]
SELECT ATT.MON$USER, ATT.MON$TIMESTAMP, ATT.MON$REMOTE_HOST, MON$REMOTE_PROCESS FROM MON$ATTACHMENTS ATT
aparece siempre:
Cita:

SYSDBA ATT.MON$STATE = 1
Cache Writer ATT.MON$STATE = 0
Garbage Cllector ATT.MON$STATE = 0
también independientemente del número de conexiones a la BD.
Saludos.

Gregorio Cíber 01-10-2018 14:55:13

Perdón, pero he marcado como SQL las sentencias, lo he previsualizado, los he visto bien, pero luego no han salido.
Lo siento.

Casimiro Notevi 01-10-2018 18:15:13

Cita:

Empezado por Gregorio Cíber (Mensaje 528725)
Perdón, pero he marcado como SQL las sentencias, lo he previsualizado, los he visto bien, pero luego no han salido.
Lo siento.

Es un error al previsualizar antes de enviar. Hay que enviarlas, y luego, si hace falta, se edita.
A ver si lo arreglamos.

Casimiro Notevi 01-10-2018 18:18:37

Cita:

Empezado por Gregorio Cíber (Mensaje 528724)
.

No se entiende lo que dices.
Código SQL [-]
select count(*) from MON$ATTACHMENTS
Devuelve el número de conexiones a la BD.

5 conexiones a una BD:


Gregorio Cíber 02-10-2018 10:59:35

Gracias a todos por responder.
Creo que está resuelto. Es un problema del sistema operativo. En Windows Server 2008 R2 va perfectamente. En algunas versiones anteriores de Windows no funciona.

Repito, gracias por vuestro tiempo.

Casimiro Notevi 02-10-2018 11:23:24

Cita:

Empezado por Gregorio Cíber (Mensaje 528746)
Gracias a todos por responder.
Creo que está resuelto. Es un problema del sistema operativo. En Windows Server 2008 R2 va perfectamente. En algunas versiones anteriores de Windows no funciona.
Repito, gracias por vuestro tiempo.


Funciona en todas las versiones, no tiene nada que ver con windows.


La franja horaria es GMT +2. Ahora son las 09:22:46.

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