Autor Beitrag
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Fr 08.08.03 19:05 
Hi,

ich brauche in einem Netzwerk an jedem Arbeitsplatz eine eindeutige Tabelle, die nur so lange benötigt wird, wie das Programm läuft. Dazu habe ich mir überlegt, in der Reihenfolge des einloggens eine Nummer hochzuzählen, bzw. bei Programmende zu löschen. D.h. ich brauche zumindest eine Nr., die größer ist als eine bestehende. Die erste Frage ist also, wie ich die größte Nr. überhaupt herausfinde (MAX ??). Die Hauptfrage ist allerdings, wie ich zu große Lücken vermeide, also 5 User sind eingelooged, der 1. und 2. loggen sich aus. Kommt noch einer dazu, soll er nicht die Nr. 6 erhalten, sondern 1 oder 2 usw.

Der Nebeneffekt wäre, die Anzahl der gleichzeitigen User zu beschränken.
Die Nr. brauche ich aber hauptsächlich wegen eines bestehenden Programmes auf Novell-Basis. Da kann ich die Workstation-Nr. recht einfach abfragen, was bei Win aber nur umständlich geht. Und die Benutzernamen zu verwenden, MAC-Adressen usw., weiß nicht, finde ich nicht gut. Das Programm kann auch nicht in mehreren Tasks auf einem Rechner laufen, immer nur einer. Das habe ich mit Semaphoren schon erledigt.

_________________
Gruß
Hansa
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Sa 09.08.03 14:16 
ich hab das mal relativ einfach mit einer Textdatei realisiert.
Jeder Client schreibt einfach eine (leere) Datei in ein Verzeichnis. Beim Abmelden löscht er diese. Ein Timer im Progg sorgt dafür, dass die Textdatei alle 5 minuten erstellt wird (kackt er ab, wird nicht mehr aktualisiert und das Dateidatum/Zeit gibt die Infos).
Die Nummer für den Dateinamen (1.2.3.4...) ist einfach über FindFirst() FindNext() in einer For() Schleife zu realisieren.
also von 1 to n do
ist Datei(n) vorhanden dann n++ else Datei(n) erstellen.

grez
msch

P.S. nicht elegant aber zweckmäßig
hansa Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Sa 09.08.03 19:22 
Nein, so geht es nicht. Zu einfach. Es geht um Netzwerke , nicht um Tasks. Es ist ein Task pro WS zulässig (Semaphore). Die eine WS kann aber nun nicht wissen, wer noch an der DB dran rumfummelt.

_________________
Gruß
Hansa
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: So 10.08.03 16:53 
grübel,
natürlich kann so auch eine WS feststellen, wer an der DB rumfummelt.
das Progg kennt ja das Verzeichnis in dem alle WS Ihre "Textdatei" reinschreiben und somit läßt sich feststellen, wer noch werkelt.

Was ist das übrigens für ne DB; die nicht die momentanen Nutzer-(anzahl) ausgibt ?
grez
msch
hansa Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: So 10.08.03 18:50 
MSCH hat folgendes geschrieben:
Was ist das übrigens für ne DB; die nicht die momentanen Nutzer-(anzahl) ausgibt ?


Dann erkläre mir mal, wie das geht, DB ist Interbase, dürfte aber egal sein. 8)

_________________
Gruß
Hansa
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: So 10.08.03 19:27 
die MS-SQL hat z.b. master.dbo.MS_sqlctrs_users.
grez
msch