|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : octobre 2002 Messages : 21 ![]() |
Bonjour,
Je cherche à connaitre le nombre de sessions paradox qui sont lancées et les noms et nombre d'utilisateurs. Si quelqu'un connait la réponse merci d'avance. Jack |
|
|
00
|
|
|
#2 |
|
Invité de passage
![]() Inscription : mai 2002 Messages : 3 ![]() |
Voilà la proc que j'utilise.
Procedure EcrireInfoVerrousDansLog; Var idxSession, IdxDataBase, IdxDataSet : integer; UsrDbiCur, LokDbiCur : hDBICur; Lock: LOCKDesc; UsrDesc: USERDesc; rslt: dbiResult; begin try with Sessions do begin For idxSession := 0 to Count-1 do begin // Parcour de toutes les sessions de l'application. EcrireLogFile('-----------------------------------------------'); EcrireLogFile('Session : ' + sessions[idxSession].SessionName {+ ' session ID :' + inttostr(siSessInfo.iSession)}); EcrireLogFile(''); with Sessions[idxSession] do begin For IdxDataBase := 0 to DatabaseCount-1 do begin with Databases[IdxDataBase] do begin EcrireLogFile(' DataBase : ' + DatabaseName); For IdxDataSet := 0 to DataSetCount-1 do begin if DataSets[IdxDataSet] is ttable then begin EcrireLogFile(' Table Name : ' + ttable(DataSets[IdxDataSet]).TableName); Check(DbiCheckRefresh); // recupértation des verrous de la table. Check(DbiOpenLockList(ttable(DataSets[IdxDataSet]).Handle, true, true, LokDbiCur)); Check(DbiSetToBegin(LokDbiCur)); EcrireLogFile(' Verrous de lectures :'); repeat rslt:= DbiGetNextRecord(LokDbiCur, dbiNOLOCK , @Lock, nil); if (rslt <> DBIERR_EOF) then begin case Lock.iType of 0 : EcrireLogFile(' Lock Type : Record lock' ); 4 : EcrireLogFile(' Lock Type : No table lock'); 5 : EcrireLogFile(' Lock Type : Table read lock'); 6 : EcrireLogFile(' Lock Type : Table write lock'); 7 : EcrireLogFile(' Lock Type : Table opened exclusively'); end; check(DbiGetNetUserName (Lock.szUserName)); EcrireLogFile(' User Name : ' + Lock.szUserName); EcrireLogFile(' Net level Session number : ' + IntToStr (Lock.iNetSession)); EcrireLogFile(' Session ID : ' + IntToStr (Lock.iSession)); EcrireLogFile(' Record Number : ' + IntToStr (Lock.iRecNum)); EcrireLogFile(''); end; until (rslt <> DBIERR_NONE); Check(DbiCloseCursor(LokDbiCur)); EcrireLogFile(''); end; end; EcrireLogFile(''); end; end; end; EcrireLogFile(''); end; end; // recupération des Utilisateurs. Check(DbiOpenUserList(UsrDbiCur)); Check(DbiSetToBegin(UsrDbiCur)); EcrireLogFile('-----------------------------------------------'); EcrireLogFile('Utilisateurs utilisant le même fichier net :'); EcrireLogFile(''); repeat rslt:= DbiGetNextRecord(UsrDbiCur, dbiNOLOCK , @UsrDesc, nil); if (rslt <> DBIERR_EOF) then begin EcrireLogFile(' User Name : '+ UsrDesc.szUserName); EcrireLogFile(' User Net level session number : '+ inttostr(UsrDesc.iNetSession)); EcrireLogFile(''); end; until (rslt <> DBIERR_NONE); Check(DbiCloseCursor(UsrDbiCur)); except on E : Exception do begin EcrireLogFile('Erreur lors de la récupération des infomations de Lock : ' + E.ClassName + ' ' + E.Message); end; end; end; |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : octobre 2002 Messages : 21 ![]() |
merci pour l'info, car en plus je connais le nombre d'utilisateurs simultanés
a+ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com