ho un database access al quale si loggano attraverso un softwarino diversi
utenti.
Questo db, contiene le userid e pwd di tutti gli utenti registrati, di
conseguenza, per poter accedere al programma
attraverso ADO in Vb6 apro la connessione, controllo la digitazione di uid e
pwd ed eventualmente do accesso al soft.
Bene...ma � possibile sapere chi � loggato in quel momento? O meglio, ho
trovato in rete questa qui:
DB.OpenSchema(adSchemaProviderSpecific, _
, "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
che io ho utilizzato e che correttamente mi restituisce una lista degli
utenti connessi, ma a dire il vero,
mi restituisce il nome della postazione (del pc in rete) che si connette al
DB e non l'utente loggato.
Quanluno potrebbe aiutarmi a risolvere questo problema?
Grazie a tutti come sempre
SLB
Leggi qui:
http://msdn.microsoft.com/en-us/library/aa155436.aspx
In particolare:
"This particular schema recordset contains the following information:
� COMPUTER_NAME. Identifies the workstation as specified in the system's
Network control panel.
� LOGIN_NAME. Specifies the name the user entered to log into the database,
if it's secured. If it isn't secured, this field returns Admin.
� CONNECTED. Returns True (-1) if there's a corresponding user lock in the
LDB file.
� SUSPECTED_STATE. Returns True (-1) if the user has left the database in a
suspect state. Otherwise, this value is Null. "
In pratica il nome dell'utente, sottolineo _del database_ (se � protetto),
*non quello di Windows*, lo trovi nel campo LOGIN_NAME.
Bye
Raf
> Bene...ma ᅵ possibile sapere chi ᅵ loggato in quel momento? O meglio, ho
> trovato in rete questa qui:
>
> DB.OpenSchema(adSchemaProviderSpecific, _
> , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
>
> che io ho utilizzato e che correttamente mi restituisce una lista degli
> utenti connessi, ma a dire il vero,
> mi restituisce il nome della postazione (del pc in rete) che si connette al
> DB e non l'utente loggato.
>
> Quanluno potrebbe aiutarmi a risolvere questo problema?
Immagino che le coppie "nome utente - password" siano in una tabella, e che tu
vada a leggere quella per autorizzare o meno il login.
Se ᅵ effettivamente cosᅵ, Access non puᅵ avere cognizione di quali di questi
utenti siano effettivamente loggati. In fin dei conti, l'intero concetto di
utente riguarda esclusivamente il tuo programma, ᅵ il database non ne puᅵ sapere
niente.
Il nome utente con cui ti connetti ad access ᅵ molto probabilmente sempre lo
stesso, quello scritto nella stringa di connessione.
In conclusione, quello che vuoi fare tu *assolutamente* non si puᅵ fare in
maniera diretta.
Potresti (schifo) scrivere in una tabella il nome dell'utente ad ogni login, e
poi fare una query su quella. E' una cosa che fa schifo perchᅵ - per dire -
basta che salti la corrente e ti trovi con dei dati inutili.
In alternativa (molto, molto meglio), quando un utente si logga, recuperi il
nome della macchina e lo mappi a quello dell'utente. Con DB.OpenSchema recuperi
poi il nome delle macchine connesse, e... beh, insomma, sei a posto.
--
S.
Grazie a te e a tutti
Sossio
"Rafunk" <rafun...@NOTHANKSlibero.it> ha scritto nel messaggio
news:hf38tn$1ia$1...@alix.livenet.it...
> Sossio Li Boni wrote:
>> Ciao a tutti,
>>
>> ho un database access al quale si loggano attraverso un softwarino
>> diversi utenti.
>> Questo db, contiene le userid e pwd di tutti gli utenti registrati, di
>> conseguenza, per poter accedere al programma
>> attraverso ADO in Vb6 apro la connessione, controllo la digitazione
>> di uid e pwd ed eventualmente do accesso al soft.
>> Bene...ma � possibile sapere chi � loggato in quel momento? O meglio,
>> ho trovato in rete questa qui:
>>
>> DB.OpenSchema(adSchemaProviderSpecific, _
>> , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
>>
>> che io ho utilizzato e che correttamente mi restituisce una lista
>> degli utenti connessi, ma a dire il vero,
>> mi restituisce il nome della postazione (del pc in rete) che si
>> connette al DB e non l'utente loggato.
>>
>> Quanluno potrebbe aiutarmi a risolvere questo problema?
>>
>> Grazie a tutti come sempre
>> SLB
>
> Leggi qui:
> http://msdn.microsoft.com/en-us/library/aa155436.aspx
>
>
> In particolare:
> "This particular schema recordset contains the following information:
> . COMPUTER_NAME. Identifies the workstation as specified in the system's
> Network control panel.
> . LOGIN_NAME. Specifies the name the user entered to log into the
> database, if it's secured. If it isn't secured, this field returns Admin.
> . CONNECTED. Returns True (-1) if there's a corresponding user lock in the
> LDB file.
> . SUSPECTED_STATE. Returns True (-1) if the user has left the database in