Visual Basic Foro

Programación => Bases de Datos => Mensaje iniciado por: Bazooka en Junio 07, 2012, 12:01:20 pm

Título: Conocer cuantos usuarios hay conectados a una BD access
Publicado por: Bazooka en Junio 07, 2012, 12:01:20 pm
Hola amigos! tengo una aplicacion desarrollada cliente y servidor que utiliza  'Microsoft.Jet.OLEDB.4.0' para conectarse. Todo me funciona correcto aparentmente pero me gustaria que desde el ejecutable Servidor pueda ver cuantos usuarios hay conectados a la bd en ese momento y de ser posibles quienes son ???
Muchas gracias !!!
Título: Re:Conocer cuantos usuarios hay conectados a una BD access
Publicado por: YAcosta en Junio 07, 2012, 03:30:55 pm
Creo que tienes que leer el archivo lbd de la BD que se crea cuando alguien se conecta a ella pero no se como hacerlo, checa esto:
http://support.microsoft.com/kb/136128/es (http://support.microsoft.com/kb/136128/es)
Título: Re:Conocer cuantos usuarios hay conectados a una BD access
Publicado por: Bazooka en Junio 07, 2012, 06:30:17 pm
Creo que tienes que leer el archivo lbd de la BD que se crea cuando alguien se conecta a ella pero no se como hacerlo, checa esto:
http://support.microsoft.com/kb/136128/es (http://support.microsoft.com/kb/136128/es)
Gracias iban pero no es para eso!!  explica que son en realidad pero no como manipularlos!

Título: Re:Conocer cuantos usuarios hay conectados a una BD access
Publicado por: seba123neo en Junio 07, 2012, 11:02:26 pm
Hola, en Access es medio limitado, pero podes hacerlo con esto:

Use ADO to Return a List of Users Connected to a Database (http://msdn.microsoft.com/en-us/library/aa155436%28v=office.10%29.aspx)

el codigo que probe y funciona es:

Código: (vb) [Seleccionar]
Private Function UsuariosConectados()
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim i, j As Long
   
    cn.Provider = "Microsoft.Jet.OLEDB.4.0"
    cn.Open "Data Source=C:\Northwind2003.mdb"
   
    Set rs = cn.OpenSchema(adSchemaProviderSpecific, , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
   
    Debug.Print rs.Fields(0).Name, "", rs.Fields(1).Name, "", rs.Fields(2).Name, rs.Fields(3).Name
   
    While Not rs.EOF
        Debug.Print rs.Fields(0), rs.Fields(1), rs.Fields(2), rs.Fields(3)
        rs.MoveNext
    Wend
End Function

Private Sub Form_Load()
    Call UsuariosConectados
End Sub
Título: Re:Conocer cuantos usuarios hay conectados a una BD access
Publicado por: YAcosta en Junio 07, 2012, 11:09:18 pm
Creo que tienes que leer el archivo lbd de la BD que se crea cuando alguien se conecta a ella pero no se como hacerlo, checa esto:
http://support.microsoft.com/kb/136128/es (http://support.microsoft.com/kb/136128/es)
Gracias iban pero no es para eso!!  explica que son en realidad pero no como manipularlos!

Cierto, lo volví a revisar y es como dices, pero alli sebas te dio la fija que yo tampoco la sabia.
Título: Re:Conocer cuantos usuarios hay conectados a una BD access
Publicado por: Bazooka en Junio 08, 2012, 08:56:45 am
Hola, en Access es medio limitado, pero podes hacerlo con esto:

Use ADO to Return a List of Users Connected to a Database (http://msdn.microsoft.com/en-us/library/aa155436%28v=office.10%29.aspx)

el codigo que probe y funciona es:

Código: (vb) [Seleccionar]
Private Function UsuariosConectados()
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim i, j As Long
   
    cn.Provider = "Microsoft.Jet.OLEDB.4.0"
    cn.Open "Data Source=C:\Northwind2003.mdb"
   
    Set rs = cn.OpenSchema(adSchemaProviderSpecific, , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
   
    Debug.Print rs.Fields(0).Name, "", rs.Fields(1).Name, "", rs.Fields(2).Name, rs.Fields(3).Name
   
    While Not rs.EOF
        Debug.Print rs.Fields(0), rs.Fields(1), rs.Fields(2), rs.Fields(3)
        rs.MoveNext
    Wend
End Function

Private Sub Form_Load()
    Call UsuariosConectados
End Sub

Buenos días amigos!! gracias funcionó correctamente sólo tuve que modificar la linea de conexion por que la base tiene contraaseña! aqui la dejo porsi le sirve a alguien en el fututo!!

Código: [Seleccionar]
'para abrir base sin contraseña
cn.Open "Data Source=C:\Northwind2003.mdb"

'para abrir base con contraseña
rutaBase=C:\Northwind2003.mdb
cn.Open "Data Source=" & RutaBase & ";" & "Jet OLEDB:Database Password=******"