UserInfo
UserInfo(int1[, int2[, int3]]) : alpha
Benutzerinformationen ermitteln
Details
- int1: Informationstyp (siehe Text)
- int2: Benutzer-ID (optional)
- int3: Verbundene Datenbank (optional)
- Resultat:
alphaBenutzerinformation - Siehe: Verwandte Befehle ,
UserClear (),UserPassword (),DbaInfo (), Beispiel
Mit diesem Befehl können Informationen über einen Benutzer ermittelt werden. Die Informationen liegen auf dem Server in einer Benutzertabelle vor, aus der einzelne Einträge geladen werden können. Das Übertragen der Benutzerinformationen erfolgt bei der Verwendung des Parameters _UserCurrent, _UserLocked, _UserNextID, _UserGroup oder wenn (int2) größer 0 ist. Erst im Anschluss daran können weitere Informationen des Benutzers abgefragt werden.
Um zum Beispiel den Namen des aktuellen Benutzers zu ermitteln, muss zunächst der Eintrag mit dem Befehl UserInfo( _UserCurrent ) abgeholt werden, bevor der Benutzername mit dem Befehl UserInfo( _UserName ) ermittelt werden kann. Sollen Informationen zu einem Benutzer mit einer bestimmten Benutzer-ID ermittelt werden, kann die Benutzer-ID im Parameter (int2) und die gewünschte Information in (int1) übergeben werden. Alle weiteren Informationen beziehen sich dann auf die zuletzt geladenen Benutzerinformationen. Ist kein Benutzer mit der angegebenen User-ID angemeldet, wird ein Leerstring zurückgegeben.
In (int3) kann angegeben werden, aus welcher verbundenen Datenbank (siehe DbaConnect ()) die angegebene Information ermittelt werden soll. Es können die Konstanten _Dba2 bis _Dba8 übergeben werden.
Die verbundene Datenbank kann nur bei den Optionen _UserCurrent , _UserLocked , _UserNextID und _UserGroup angegeben werden, da diese Informationen aus der Datenbank lesen.
Resultate, die numerische Informationen enthalten, müssen gegebenenfalls mit CnvIA () umgewandelt werden.
Die Befehle UserID () , UserNumber () und UserName () werden durch diesen Befehl ersetzt und sollten nicht mehr verwendet werden.
Von einem Benutzer können sowohl die Benutzer-ID als auch die Benutzer-Nummer ermittelt werden. Beide Nummern werden beim Anmelden des Benutzers durch CONZEPT 16 vergeben. Die Benutzer-Nummer startet immer bei 1. Der Benutzer, der sich zuerst anmeldet bekommt die Nummer 1, dann die 2 usw. Entstehende Lücken durch das Abmelden von Benutzern werden bei der Anmeldung neuer Benutzer wieder aufgefüllt.
Die Benutzer-ID wird in der Datenbank gespeichert und liegt im Bereich 1 bis 65535. Bei der Anmeldung eines Benutzers wird die gespeicherte Benutzer-ID erhöht und dem Benutzer zugewiesen. Ist der Maximalwert erreicht, beginnt die Nummerierung wieder bei 1. Die Benutzer-ID kann verwendet werden, wenn benutzer-eindeutige Namen benötigt werden, zum Beispiel für temporäre externe Dateien oder Namen für Selektionen.
Sowohl die Benutzer-Nummer als auch die Benutzer-ID sind eindeutig. Die Benutzer-Nummer wird aber nach dem Abmelden des Benutzers sofort wieder verwendet, die Wiederverwendung der Benutzer-ID findet erst nach 65535 neuen Anmeldungen statt. Innerhalb der Protokolldatei der Datenbank werden beim Login / Logout eines Benutzers dessen Benutzer-ID angegeben.
Folgende Optionen (int1) sind zulässig:
_UserCurrentDer Eintrag des eigenen Benutzers wird in der Benutzertabelle gelesen und dessen Benutzer-ID zurückgegeben._UserLockedDer Eintrag des sperrenden Benutzers wird gelesen und dessen Benutzer-ID zurückgegeben. Diese ID kann nach einer Datenbankoperation mit den Ergebnissen_rLockedund_ErrBinLockedabgefragt werden. Diese Ergebnisse werden von Datensatzoperationen oder beim Zugriff auf Selektionen, Texte, binäre Objekte und Listenformate zurückgegeben._UserNextIDMit dieser Option kann die Benutzer-ID des nächsten Benutzers ermittelt werden. In (int2) steht die Benutzer-ID des Tabelleneintrags, der zuvor gelesen wurde. Wird in (int2)0übergeben, wird der erste Benutzer in der Tabelle gelesen._UserNameName des Benutzers._UserNumberNummer des Benutzers. Zur Unterscheidung zur Benutzer-ID siehe oben._UserProtocolDer Rückgabewert entspricht dem Protokoll mit dem der Client und der Server verbunden sind. Es wird nur TCP unterstützt._UserAddressEs wird die IP-Adresse (x.x.x.x) des Rechners zurückgegeben. Siehe auchNetInfo ()._UserSysNameName des Rechners._UserSysNameIPIP-Name des Rechners. Der Name setzt sich aus dem Rechnernamen und der Arbeitsgruppe zusammen._UserLoginDateEs wird das Datum der letzten Anmeldung zurückgegeben._UserLoginTimeEs wird die Uhrzeit der letzten Anmeldung zurückgegeben._UserLoginEs werden die Anzahl der Sekunden seit des Logins zurückgegeben._UserLastReqDateEs wird das Datum zurückgegeben, zu dem der Benutzer zuletzt eine Anfrage an den Server geschickt hat._UserLastReqTimeEs wird die Uhrzeit zurückgegeben, zu dem der Benutzer zuletzt eine Anfrage an den Server geschickt hat._UserLastReqEs wird die Anzahl der Sekunden seit der letzten Serveranfrage zurückgegeben._UserSysAccountName des Systembenutzers. Dies ist der Name des Windows- oder Unix-Benutzerkontos._UserNetAccountName des Netzwerkbenutzers. Dies ist der Name des Netware-Benutzerkontos._UserGroupHauptbenutzergruppe ermitteln. In (int2) muss die Benutzer-ID des Benutzers angegeben werden, dessen Hauptbenutzergruppe ermittelt werden soll. Es wird ein Leerstring zurückgegeben, wenn es sich bei dem Benutzer um keinen untergeordneten Benutzer handelt. In diesem Fall kann mitUrmPropGet ( _UrmPropUserGroup )die Hauptbenutzergruppe ermittelt werden._UserPlatformProzedurumgebung ermitteln. Rückgabewert ist eine_Pfm...-Konstante._UserJobIDJob-ID ermitteln (sieheJobID).
Beispiele:
// Lesen aller Benutzer
// Eintrag des erstem Benutzers beim Server abholen
for tID # CnvIA(UserInfo(_UserNextID));
// Eintrag des nächstem Benutzer beim Server abholen
loop tID # CnvIA(UserInfo(_UserNextID, tID));
while (tID > 0)
{
// Benutzername
... # UserInfo(_UserName);
// Name des Rechners
... # UserInfo(_UserSysName);
...
// Benutzer hat seit mehr als 24 Stunden keinen Request gestellt
tDiff # CnvIA(UserInfo(_UserLastReq);
if (tDiff > 86400)
{
...
}
}
// Namen des Benutzers und des Rechners ermitteln mit der User ID 3090
tUserName # UserInfo(_UserName, 3090);
tUserMachine # UserInfo(_UserSysName);
// Name des ersten Benutzers einer verbundenen Datenbank ermitteln
UserInfo(_UserNextID, 0, _Dba2);
tName # UserInfo(_UserName);