AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Zugriff mehrerer User auf eine Datei

Zugriff mehrerer User auf eine Datei

Ein Thema von Jean · begonnen am 6. Jul 2013 · letzter Beitrag vom 8. Jul 2013
Antwort Antwort
Perlsau
(Gast)

n/a Beiträge
 
#1

AW: Zugriff mehrerer User auf eine Datei

  Alt 6. Jul 2013, 10:26
Ab 2.5 basiert die embedded nicht mehr auf der SuperServer, sondern der neuen SuperClassic Variante.
Da bin ich offenbar nicht auf den Laufenden

Nein die Datei muss nicht im selben Verzeichnis liegen.
Auch dieses Feature seit 2.5? Muß ich heute abend mal testen ...

Lieber nicht, da Access meiner Efahrung nach große Probleme bei Multiuserzugriff hat ( defekte Datenbanken usw.)
Wie gesagt, ich hatte damit noch keine Probleme. Das ganze System (App und DB) ist so eingerichtet, daß jeder User lediglich seine eigenen Einträge bearbeiten kann. Es geht dabei in der Hauptsache um Terminvereinbarungen: jeder eingeloggte User kann natürlich für andere Mitarbeiter Termine vereinbaren, aber nur, wenn der betreffende User nicht eingeloggt ist, was bedeutet, er ist nicht im Haus und kann diesen Termin daher nicht selbst vereinbaren. Ändern kann dann wiederum nur der Mitarbeiter, der den Termin hat, diesen Eintrag. Es kommt zudem, wie mir berichtet wurde, nur äußerst selten vor, daß ein Mitarbeiter für einen anderen einen Termin vereinbart.

Wie gesagt, es funktioniert jetzt bereits seit über drei Jahren ohne Probleme.

zudem ist der Installationsaufwand bei den Client höher als bei anderen Lösungen.
Naja, das ist ein anderes Problem. In meinem Fall wurde das natürlich von mir persönlich eingerichtet und den Leuten erklärt. Und für mich war das kein nennenswerter Aufwand (das Entwickeln dagegen schon).
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: Zugriff mehrerer User auf eine Datei

  Alt 7. Jul 2013, 04:18
Bei einer Highscore dürftest du das Problem mit dem "dirty writing" haben, sofern derjenige, der schreibt, auch die Logik ausführt (einsortieren in die Highscore Liste). Dafür muss es einen wechselseitigen Ausschluss geben.
Für soetwas dürfte das Fassade-Pattern angebracht sein - eine Schnittstelle, die das Eintragen übernimmt.
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Zugriff mehrerer User auf eine Datei

  Alt 7. Jul 2013, 18:46
Also ich würde wenn es nur um zentrale Highscores geht die Sache mit einer exklusiv gelockten Datei erledigen.
Hier mal Stichpunktartig der Ablauf:

Eingabeparameter:
* Dateiname
* Highscorename
* scorewert (-1 bedeutet: Highscore nicht schreiben)
Ausgabe
* Stringliste mit Highscores

Ablauf
1.) Datei exklusiv öffnen
dabei hilft dieser Code http://www.delphipraxis.net/52135-ex...f-dateien.html
2.) Inhalt aus dem Stream in die Stringliste einlesen Liste.ReadFromStream(stream); 3.) Wenn scorewert = -1 dann gehts weiter mit Punkt 8
4.) Zeile mit dem Highscorename suchen und aktualisieren
der Inhalt der Datei könnte z.B. so aussehen
Code:
Gametester|200000
Predator|80500
Fredl|60000
Beginner|5500
Also immer Name|score in einer Zeile
5.) Falls der eigene Name nicht in der Liste enthalten dann neuen Eintrag einfügen
6.) Liste ggf. sortieren
7.) Stream Position auf Anfang setzen und aktualisiert Liste schreiben
8.) Streamobjekt freigeben

Man kann den beschriebenen Auflauf in einer Procedure unterbringen oder (besser) man schreibt eine Klasse dafür.
Nachtrag: man kann die Stringliste auch in ein TMemIniFile kopieren (Methoden SetStrings , GetStrings ) und so den Datenzugriff vereinfachen
fork me on Github

Geändert von sx2008 ( 8. Jul 2013 um 14:26 Uhr) Grund: Punkt 7.) war unvollständig
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Zugriff mehrerer User auf eine Datei

  Alt 8. Jul 2013, 11:29
Bei einer Highscore dürftest du das Problem mit dem "dirty writing" haben, sofern derjenige, der schreibt, auch die Logik ausführt (einsortieren in die Highscore Liste). Dafür muss es einen wechselseitigen Ausschluss geben.
Für soetwas dürfte das Fassade-Pattern angebracht sein - eine Schnittstelle, die das Eintragen übernimmt.
Wie das Facade-Pattern hier jetzt konkret helfen soll ist mir allerdings ein Rätsel.

Das Strategy-Pattern könnte ich mir gut vorstellen, aber nur um die konkrete Implementierung zu verstecken und später sehr leicht eine andere Speichermethode (Datenbank, Webdienst, etc.) einzuführen.

Konkret hilft das aber auch nicht, aber damit würde ich den Ansatz von sx2008 kapseln
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 19:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz