AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Arbeiten mit Datenbanken im Netzwerk
Thema durchsuchen
Ansicht
Themen-Optionen

Arbeiten mit Datenbanken im Netzwerk

Ein Thema von orion3000 · begonnen am 8. Apr 2005 · letzter Beitrag vom 12. Apr 2005
Antwort Antwort
orion3000

Registriert seit: 28. Aug 2003
Ort: Betzdorf
63 Beiträge
 
Delphi 4 Standard
 
#1

Arbeiten mit Datenbanken im Netzwerk

  Alt 8. Apr 2005, 08:35
Hallo Zusammen, ich habe ein Problem:

Ich habe eine Kassenanwendung geschrieben und diese dann Netzwerkfähig gemacht dies funktioniert alles auch ganz gut.

Aber wenn ich mein Programm, welches nicht im Netz sondern lokal arbeitet, beende und meinen PC herunterfahre dann hängt sich natürlicherweise die Anwendungen die auf die Datenbanken des Rechners zugreifen auf.



z.B.:



(Rechner 1) dort läuft das Programm Lokal und die Datenbanken liegen auf diesem Rechner



(Rechner 2) dort wird das Netzwerk initialisiert und das Programm greift auf die

Datenbanken auf Rechner 1 zu .



Nun mein Problem wird Rechner 1 heruntergefahren und die Anwendung läuft aber noch auf Rechner 2 so hängt sich Rechner 2 auf und nur noch ein Abbruch mit dem Taskmanger kann

dann nur noch das Programm beenden.



Wie kann ich auf Rechner eins überprüfen das noch eine Anwendung auf die Datenbanken

auf Rechner 1 zugreift oder wie kann ich überprüfen ob noch eine Instanz der Anwendung

im Netzwerk Aktiv ist.

Ich habe mich vielen Foren schon durchgewühlt aber konnte nichts finden.

Ein kleines Beispiel wäre einfach Toll.



Gruß

Orion3000
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#2

Re: Arbeiten mit Datenbanken im Netzwerk

  Alt 8. Apr 2005, 08:40
das programm könnte sich verbinden, und beim beenden wieder abmelden.

so kann das programm 1 dann gucken, es sind noch soundso viele clients da...

also nicht einfach auf die db sondern vorher meldung (zb mit indy) an rechner 1 "hallo" und am ende "Tschüss"
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
8. Apr 2005, 08:41
Dieses Thema wurde von "Sharky" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Datenbanken" verschoben.
In der Sparte "Neue Beiträge zur Code...." bitte keine Fragen posten. Hier sollen nur fertige Lösungen rein. Danke
Generalissimo

Registriert seit: 28. Aug 2003
187 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: Arbeiten mit Datenbanken im Netzwerk

  Alt 8. Apr 2005, 09:35
Was für eine Datenbank ist das denn? Viele Datenbanken bieten die Option über bestimmte Wege herauszufinden wieviele mit der DB verbunden sind. Bsp. in der MSDE gibt es eine StoredProcedure dafür.
  Mit Zitat antworten Zitat
orion3000

Registriert seit: 28. Aug 2003
Ort: Betzdorf
63 Beiträge
 
Delphi 4 Standard
 
#5

Re: Arbeiten mit Datenbanken im Netzwerk

  Alt 8. Apr 2005, 13:04
Hallo Zusammen, einmal Danke für Eure prompte Hilfe,

ich arbeite mit Paradox.

in der Delphihilfe habe ich nichts dergelichen gefunden!

Ich muß eigentlich nur wissen ob noch auf den Lokalenrechner von einem anderen Programm auf die Datenbanken zugegriffen wird-

Gruß
Orion3000
  Mit Zitat antworten Zitat
Generalissimo

Registriert seit: 28. Aug 2003
187 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: Arbeiten mit Datenbanken im Netzwerk

  Alt 8. Apr 2005, 13:35
Dann würde ich dir den Tipp von glkgereon empfehlen. Leg eine Extra Tabelle an.

Tabelle:

UserID | Timestamp
---------------------

Szenario Client-Server -> Two-Tier-Technik
Beim verbinden mit der DB schreibst du den User in die Tabelle. Beim Beenden löschst du ihn
Ab und zu solltest du dann mit nem Systemprogramm nachschauen ob einen User gibt dessen Timestamp schon bissl sehr alt ist.
Ist das der Fall könntest du (vorrausgesetzt du hast soetwas implementiert) nachfragen ob er noch Online ist. Ist er es nicht dann löschst du ihn aus der Tabelle. Dies ist für den Fall das mal ein Programm nicht über den offiziellen Weg beendet wurde.

Szenario -> n-Tier-Technik
Hier sind Verbindungen nur auf kurze Dauer angelegt. Sie werden nur geöffnet und geschlossen,wenn sie benötigt werden und nicht zum Programmstart und Programmende. Ist hier der Timestamp relativ alt (du weißt ja ungefähr welche Daten bewegt werden und wielange es dann dauert bis sie beim Client sind.) kannst du den User ohne Nachfrage löschen.

Achja die Ermittlung ob mehr als einer mit der DB verbunden ist, läuft dann über

Ergebnis von Select Count(UserID) FROM TabelleX
If Ergebnis > 1 then ShowMessage('Es sind noch Benutzer mit der DB verbunden')
  Mit Zitat antworten Zitat
merlin17

Registriert seit: 15. Dez 2002
Ort: Mittelfranken
980 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

Re: Arbeiten mit Datenbanken im Netzwerk

  Alt 8. Apr 2005, 13:39
hier ein uralt-programm, liest aus der der .net die aktiven (!) verbindungen aus.

einfach die com-datei in das verzeichnis mit der pdoxusers.net datei kopieren und im DOS (es ist von 93!!) starten....


thomas
Angehängte Dateien
Dateityp: zip netdump_138.zip (7,7 KB, 5x aufgerufen)
- TeamNevrona cannot respond to questions received via email -
http://rave-notes.blogspot.com
  Mit Zitat antworten Zitat
orion3000

Registriert seit: 28. Aug 2003
Ort: Betzdorf
63 Beiträge
 
Delphi 4 Standard
 
#8

Re: Arbeiten mit Datenbanken im Netzwerk

  Alt 12. Apr 2005, 14:47
Hallo Zusammen,

ich habe das Problemm gelöst, und zwar so:

Jedesmal wenn das Programm Lokal gestartet wird dann überprüft das Programm ob es Lokal oder im Netz arbeitet.

Wenn es im Netz arbeitet so wird eine Inidatei erstellt in der sich dann alle anderen User eintragen müssen.

Bevor das Lokale Programm beendet wird überprüft dieses ob noch weitere User auf die Datenbanken zugreifen.
Wenn ja dann wird ein Hinweisdialog angezeigt das erst alle anderen User ihr Programm Beenden müssen.

Wenn ein Programm im Netz arbeitet und beendet wird so wird der Eintrag aus der Inidatei gelöscht.

Ist vieleicht nicht die schönste Lösung aber etwas anderes habe ich nirgends gefunden.

Gruß
Orion3000
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:35 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