AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Mehrere Nutzer an einer Datenbank - Aktualisierung?
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere Nutzer an einer Datenbank - Aktualisierung?

Ein Thema von davar · begonnen am 4. Mai 2005 · letzter Beitrag vom 8. Mai 2005
Antwort Antwort
davar

Registriert seit: 4. Feb 2005
311 Beiträge
 
Turbo Delphi für Win32
 
#1

Mehrere Nutzer an einer Datenbank - Aktualisierung?

  Alt 4. Mai 2005, 16:04
Datenbank: MySQL • Version: 4.1 • Zugriff über: noch gar nich..
Hallo Leute,

bin schon ganz vorsichtig beim Fragen, gehört wahrscheinlich auch zum Datenbank-Grundwissen, habe jedoch auch im Forum nichts dazu gefunden.

Mehrere Leute sollen an einer MySQL-Datenbank arbeiten, sagen wir mal programmiert mit den Zeos-Komponenten (wenn das eine Rolle spielt). Wie läuft der Aktualisierungsvorhang währenddessen? Wird dann eingestellt, dass nach bestimmter Zeit die Daten aufgefrischt werden oder wie macht man das? Es kann ja immer wieder vorkommen, dass zwei oder mehr Leute fast gleichzeitig denselben Datensatz bearbeiten möchten..


MfG

davar
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: Mehrere Nutzer an einer Datenbank - Aktualisierung?

  Alt 4. Mai 2005, 16:19
Vielleicht kann man vor dem Updatebefehl prüfen, ob darauf zugegriffen wird.

MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
davar

Registriert seit: 4. Feb 2005
311 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Mehrere Nutzer an einer Datenbank - Aktualisierung?

  Alt 4. Mai 2005, 16:23
Zitat von freak4fun:
Vielleicht kann man vor dem Updatebefehl prüfen, ob darauf zugegriffen wird.

MfG
freak
Ich schätze mal, dass zwei Leute genau zum gleichen Zeitpunkt etwas ändern ist sehr unwahrscheinlich. Viel mehr stell ich mir das Problem so vor:

A sucht die Telefonnummer vom Kunden Meier, um ihn anzurufen. Er findet die Nummer und zu dem Zeitpunkt wird er vom Chef zu einer Besprechung gerufen.
B hat währenddessen die Telefonnummer vom Kunden Meier geändert, weil diese sich geändert hat.
A setzt sich wieder an seinen Computer und sieht...... ja, was? die alte oder die neue Telefonnummer?


MfG

davar
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Mehrere Nutzer an einer Datenbank - Aktualisierung?

  Alt 4. Mai 2005, 16:59
Er sieht selbstverständlich die alte Nummer.

Ein regelmäßiges Refresh vom Server an den Client ist ungewöhnlich und wird üblicherweise auch nicht gemacht. Vielleicht bei der einen oder anderen Spezial-Anwendung.
Eine Refresh-Anforderung wird vom Client an den Server geschickt.
Beispiel:
- Datensatz aus Liste auswählen und in einem anderen Fenster zur Bearbeitung anzeigen.
- Datensatz speichern.
- Die Liste muss aktualisiert werden, damit man die Änderungen auch sieht. Dabei wird normalerweise auch eine Refresh-Anforderunf für die anderen Datensätze an den Server geschickt.

Man kann dem Anwender ntürlich noch einen Knopf anbieten für einen manuellen Refresh. Standard-Taste für Aktualisierungen ist F5. Kennst du bestimmt aus deinem Web-Browser. Dort werden deine Übersichten auch nicht automatisch aktualisiert.
Peter
  Mit Zitat antworten Zitat
Stefan Dieler
(Gast)

n/a Beiträge
 
#5

Re: Mehrere Nutzer an einer Datenbank - Aktualisierung?

  Alt 4. Mai 2005, 17:10
Hallo,

ich habe mal damit angefangen folg. Prozedur dafür zu schreiben, die per UDP Daten versendet.

Schnell erklärt sollte das so funktionieren:
Vor jedem Post wird per UDP die Tabelle, die geändert wird, an die anderen Benutzer gesendet. Dort wir dann die Tabelle in dem UDP-Datenstrom aktualisiert.

Aber ich habe das ganze noch nicht zu Ende gebracht, muss ich irgendwann mal machen. Bis jetzt ist muss man halt manuell aktualisieren.

Bei anderen Datenbanken gibt es sowas wie NotificationServer, aber bei MySQL leider nicht.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Mehrere Nutzer an einer Datenbank - Aktualisierung?

  Alt 7. Mai 2005, 18:19
Das mit Refresh habe ich ähnlich gelöst. Nicht mit UDP (weil ich zu blöd bin), sonder mit mailslots. Aber egal. Es ist verdammt aufwändig und hat zu massiven Problemen geführt, weil der Client ab und an beim refreshen sich selbst ins Knie geschossen hat (stichwort: Threadsafe programmieren). Also mussten wir im Client ständig die Refreshs wieder puffern, weil der Client gerade irgendwas physes gemacht hat.

Wir haben es zwar hinbekommen, aber schön ist das nicht. Mittlerweile verwenden wir einen zentralen 'Cache' (als Mittelschicht). Dieser Cache refresht die Tabelle (Aktueller Zustand eines Maschinenparks) alle 60 sec vom SQL-Server. Die Clients bedienen sich bei diesem zentralen Cache nach Bedarf. Das ist wesentlich sicherer, und auf die paar Sekunden kommts nicht drauf an.

Bei der Kunden-Telefonnummer, die sich -hupsa- mal eben ändert, ist das natürlich ärgerlich. Dagegen haben wir ein auto-timeout. Der Mitarbeiter, der also zur Besprechung geht, kommt gar nicht in die Verlegenheit, eine verdammt alte Telefonnummer zu sehen, weil der Client ihn ja nach 1 Minute rauswirft.

Abschliessend sei gesagt, das dieses Refresh der reinen Metapher einer Mehrbenutzer-DB widerspricht. Die Clients kommen ja (in einer grossen Umgebung) vor lauter Refresh gar nicht mehr zum Ausruhen... Aber, cool ist es schon.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Mehrere Nutzer an einer Datenbank - Aktualisierung?

  Alt 7. Mai 2005, 22:18
ein ganz einfaches client seitiges "sie waren länger als 1 minunte nicht da. wollen sie nicht mal f5 drücken?"
würde doch völlig reichen, oder?!
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Mehrere Nutzer an einer Datenbank - Aktualisierung?

  Alt 8. Mai 2005, 08:49
He he, kommt drauf an. Bei Anwendungen, bei denen es wichtig ist, *wer* gerade Änderungen vornimmt, würde ich das Auto-Logoff bevorzugen. Bei anderen Anwendungen haben wir den Zeitpunkt der letzten Aktualisierung eingeblendet ('Public Access' Anwendungen). Wenn das dann noch nach ein paar Minuten rot wird, oder so ein von Dir vorgeschlagener Hinweis kommt, umso besser. Es kommt eben immer auf die Einzelanwendung an.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  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 05: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