Autor Beitrag
dalpers
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Mo 05.09.05 08:54 
Hi,

Ich möchte mein Programm im Netzwerk ablegen, damit ich es bei Updates nur an einer Stelle austauschen muß.

Muss ich da was besonderes beachten?

Ich arbeite mit einer Paradox-Datenbank und habe schon das PrivateDir der Tabellen und Querys auf das jeweilige tmp-Verzeichnis gelegt.

Das war jetzt ein Problem, was einem gleich auffällt, aber ich möchte ungerne Überraschungen erleben und in einer Woche in Panik geraten weil nichts mehr geht ;-)

Wäre nett, wenn ihr mir sagen könntet, was ich da beachten muß.

Danke und Gruß

Denise
laserflor
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 37

Win XP, Win 2000, Win 98, Win NT4
D5 Prof
BeitragVerfasst: Mo 05.09.05 09:57 
Titel: Re: Programm im Netzwerk - Zugriff mehrerer PCs auf gleiche
user profile icondalpers hat folgendes geschrieben:
Hi,

Ich möchte mein Programm im Netzwerk ablegen, damit ich es bei Updates nur an einer Stelle austauschen muß.

Muss ich da was besonderes beachten?

Ich arbeite mit einer Paradox-Datenbank und habe schon das PrivateDir der Tabellen und Querys auf das jeweilige tmp-Verzeichnis gelegt.

Das war jetzt ein Problem, was einem gleich auffällt, aber ich möchte ungerne Überraschungen erleben und in einer Woche in Panik geraten weil nichts mehr geht ;-)

Wäre nett, wenn ihr mir sagen könntet, was ich da beachten muß.

Danke und Gruß

Denise


Hallo Denise,
was mir ganz spontan einfällt ist die Tatsache, dass eine .exe nicht geändert werden kann, während das Programm auf irgendeinem PC im Netzwerk läuft. Das geht übrigens auch lokal nicht, was du überprüfen kannst, wenn du ein Programm außerhalb von Delphi startest und dann versuchst, dieses neu zu kompilieren. Wenn du also sicherstellen willst, dass die neue Version aktiv wird, musst du vor dem Starten im Fall einer Änderung eine Kopie (u.U. sogar lokal) ablegen und nur die Kopie starten.

Aus dem Text geht hervor, dass du anscheinend die Daten nicht gemeinsam nutzen willst. Falls das doch der Fall sein sollte, muss bei allen PC der Ordner Session.NetFileDir auf denselben Ordner zeigen. Sieh dir mal die Hilfe zu Session, TSession und TSession.NetFileDir an. Du kannst den Ordner auch mit Hilfe der BDE-Verwaltung einstellen: Konfiguration -> Treiber -> Native -> PARADOX -> NET DIR
Des weiteren musst du dann beachten, dass ein Datensatz gesperrt wird, während ein Nutzer ihn bearbeitet, wodurch Edit fehlschlägt.
ausblenden Quelltext
1:
try TBL.Edit except {Datensatz ist gesperrt} end					

Ich denke, dass es noch die eine oder andere Sache gibt, die mir jetzt spontan nicht einfällt, also gibt es bestimmt noch Ergänzungen von andern oder mir :lol:
Gruß Rolf
dalpers Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Mo 05.09.05 10:18 
Hi Rolf,

Danke für deine Antwort.

Im Moment nutzen wir schon von mehreren Pcs aus die gleiche Datenbank. Die exe liegt aber auf jedem PC lokal und ich will mir die Arbeit erleichtern, indem ich nicht überall das Update einspielen will.

Desswegen ist das Net-Dir schon überall gleich eingestellt (auf ein Verzeichnis im Netzwerk) und das PrivateDir auf jedem PC lokal.

Was gibt es denn für Gründe, dass sich die EXE ändert außer einem Update. Also beim Update dafür zu sorgen, dass keiner darauf zugreift ist kein Problem, aber verändert sich die exe auch beim "normalen" Programmaufruf? unter welchen Umständen?

Vielen Dank und LG

Denise
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 05.09.05 10:29 
Bei einem normalen Programmaufruf KANN sich die Exe gar nicht mehr ändern, weil da Windows (manchmal leider...) was dagegen hat.
Da besteht also kein Problem...

Lediglich die Geschwindigkeit des Programmablaufs kann sich verschlechtern, wenn mehrere gleichzeitig mit dem Programm arbeiten und also gleichzeitig auf die Exe zugreifen.
Es gibt da auch sehr einfach zu nutzende Lösungen für automatische Updates, von denen der End-User gar nix merkt, obwohl die Exe lokal ist.
Zum Beispiel indem ein Loader benutzt wird, der automatisch die aktuellste Version holt, falls notwendig.

Für meine Zwecke war dies fast immer die sinnvollere Möglichkeit, vor allem, weil ein solcher Loader sehr einfach zu schreiben ist.
dalpers Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Mo 05.09.05 11:17 
Hi jaenicke,

an so eine Art automatisches Update habe ich auch schon gedacht, aber ohne Admin-Rechte kann man nicht so einfach im Programme-Verzeichnis Dateien durchtauschen. Ok, ich konnte es in ein anderes Verzeichnis installieren, aber das halte ich nciht für sinnvoll. gibt es denn außer der Geschwindikeit noch irgendwelche Probleme mit denen ich rechnen muß?

VLG

Denise
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 05.09.05 11:26 
Also zu erstens: Man muss ja nur die Benutzerrechte entsprechend ändern, wie ich es auch getan habe. Die Verzeichnisse, in die in Programme nicht von normalen Usern geschrieben werden soll (Zubehör, etc.), werden so eingestellt, dass einfach zum Schreiben die Rechte vom Admin benötigt werden, und fertig.

Und zu zweitens:
Nur ein Problem hatte ich. Manchmal, wenn das Programm auf einem der Rechner abgestürzt ist, hat dies der Server nicht mitbekommen, und dachte also, die Exe wird noch benutzt.
Und dann konnte ich diese nicht mit der neuen Version überschreiben bis der Server neu gestartet war.
Das war auch der Hauptgrund für mich, das Programm wieder lokal abzulegen...

Ansonsten sollte eigentlich alles genauso wie lokal gehen.