Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Firebird / Verbundene User abfragen (https://www.delphipraxis.net/80213-firebird-verbundene-user-abfragen.html)

pbfdg 4. Nov 2006 18:26

Datenbank: Firebird • Version: 2.0 • Zugriff über: Zeos 6.6.0 Beta

Firebird / Verbundene User abfragen
 
Hallo

Wie kann ich die Aktiven User einer Firebird Datenbank abfragen?


Gruß Peter

pbfdg 5. Aug 2007 12:21

QL
 
Hallo zusammen,
halbes Jahr später und immer noch keine Lösung!
Deshalb noch mal die Frage:
Gibt es keine Möglichkeit die Angemeldeten User einer Firebird Datenbank über SQL zu ermitteln?
In den weiten des Internets habe ich zu diesem Thema nichts gefunden.

Gruß Peter

Jürgen Thomas 5. Aug 2007 12:39

Re: Firebird / Verbundene User abfragen
 
Hallo,

dafür sind die System-Tabellen TMP* zuständig, konkret:
Zitat:

TMP$ATTACHMENTS
The TMP$ATTACHMENTS table contains one row for each connection to a database.

Column name - Data type - Description
TMP$ATTACHMENT_ID INTEGER Connection identifier
TMP$DATABASE_ID INTEGER Database identifier
TMP$POOL_ID INTEGER Reserved
TMP$POOL_MEMORY INTEGER Reserved
TMP$STATEMENTS SMALLINT Number of compiled statements
TMP$TRANSACTIONS SMALLINT Number of active transactions
TMP$TIMESTAMP TIMESTAMP Connection create timestamp
TMP$QUANTUM INTEGER Units of execution
TMP$USER VARCHAR[31] User name
TMP$USER_IP_ADDR VARCHAR [16] User IP address
TMP$USER_HOST_NAME VARCHAR [16] User host name
TMP$USER_PROCESS_ID VARCHAR [16] User process ID
TMP$STATE VARCHAR [16] CONNECTED, ACTIVE
TMP$PRIORITY VARCHAR [16] Reserved
TMP$DBKEY_ID INTEGER Transaction ID of dbkey
TMP$ACTIVE_SORTS SMALLINT Number of active sorts
TMP$PAGE_READS INTEGER Page reads all database files
TMP$PAGE_WRITES INTEGER Page writes all database files
TMP$PAGE_FETCHES INTEGER Page fetches all database files
TMP$PAGE_MARKS INTEGER Page marks all database files
TMP$RECORD_SELECTS INTEGER Records selected by connection
TMP$RECORD_INSERTS INTEGER Records inserted by connection
TMP$RECORD_UPDATES INTEGER Records updated by connection
TMP$RECORD_DELETES INTEGER Records deleted by connection
TMP$RECORD_PURGES INTEGER Garbage collect record purges
TMP$RECORD_EXPUNGES INTEGER Garbage collect record expunges
TMP$RECORD_BACKOUTS INTEGER Garbage collect record backouts
Also hilft Dir z.B. folgende Abfrage:
SQL-Code:
SELECT TMP$USER, TMP$USER_IP_ADDR, TMP$USER_HOST_NAME, TMP$USER_PROCESS_ID, TMP$STATE
    FROM TMP$ATTACHMENTS
Bitte beachte, dass damit nur die angemeldeten Benutzer aufgeführt werden können. Wenn in einer Client-/Server-Umgebung nur der Server die DB-Verarbeitung organisiert, kann auch nur dieser angemeldet sein, aber nicht die Client-User.

Quelle: LangRef.pdf (Language Reference) aus der Dokumentation von Interbase 7.5 Developer Edition, das bei Delphi 2005 Pro dabei lag. Für alle solchen Details ist diese nach wie vor besser (und hilfreicher) als die Firebird-Dokumentation, zumal das Firebird Book nicht mehr aktuell ist (und wohl auch vergriffen).

Gruß Jürgen

pbfdg 5. Aug 2007 12:56

Re: Firebird / Verbundene User abfragen
 
Hallo Jürgen,
schönen Dank für die Hilfe!
Ich habe es mit der Abfrage versucht und bekomme folgende Fehlermeldung.

SQL Error: Dynamic SQL error code = -204 Table unknown TMP$ATTACHMENTS AT line 2..............

Gruß Peter

PS:Formel 1 ruft!!!!!!

Jürgen Thomas 5. Aug 2007 15:17

Re: Firebird / Verbundene User abfragen
 
Ohhh, tut mir leid. Bisher hatte ich mich immer darauf verlassen können, dass die Interbase-Doku auch für Firebird gültig ist. (Und ich bilde mir ein, dass ich auch schon mal eine TMP-Tabelle mit Select angeschaut hatte, aber wo und wie...)

Ich werde mal weiter suchen; ich bin mir sicher, dass diese Information zugänglich ist.

"Ergebnisse" der Suche
Firebird arbeitet ohne TMP-Tabellen (das liefert u.a. die DP-Suche).
Meine Erinnerung hat mich getrogen: Ich hatte genau den vorgeschlagenen Select genutzt, aber noch unter Interbase. :x
Der neue Wert CURRENT_USER bezieht sich ausschließlich auf die aktuelle Connection.

Schade! Jürgen

[OT]Selber Radfahren ist besser, als Stinkern bei der Produktion von Lärm und Abgasen zuzusehen.[/OT]

arnold mueller 5. Aug 2007 16:29

Re: Firebird / Verbundene User abfragen
 
via SQL geht das z. Zt. nicht, soll aber in einer der nächsten Versionen kommen. (ich meine das zumindest irgendwo gelesen zu haben)
IBX bzw. UIB bieten Komponenten, um die gewünschte Info beim Server zu erfragen. Bei IBX war es glaube ich TIBDatabaseInfo.

-
Arno

pbfdg 5. Aug 2007 18:21

Re: Firebird / Verbundene User abfragen
 
Hallo Arnold,
Mit IBX "IBDataBaseInfo" habe ich es hinbekommen.

Danke!!

Gruß Peter


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz