AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Aktualisieren von einem dbgrid im LAN
Thema durchsuchen
Ansicht
Themen-Optionen

Aktualisieren von einem dbgrid im LAN

Ein Thema von olaf · begonnen am 31. Jul 2009 · letzter Beitrag vom 2. Aug 2009
Antwort Antwort
olaf

Registriert seit: 4. Mai 2009
Ort: Iserlohn
82 Beiträge
 
RAD-Studio 2009 Pro
 
#1

Aktualisieren von einem dbgrid im LAN

  Alt 31. Jul 2009, 11:24
Datenbank: turbodb • Version: 5.0 • Zugriff über: tdatabase + ttable von turbodb
Hallo,
ich arbeite an einer Applikation in der Termine für verschiedene Räume in einer Tabelle einer Datenbank gespeichert werden. Die Struktur der Termine und der zugeordneten Räume wird für 2 Jahre im voraus angelegt, sodass eine Neuanlage eines Termins nicht über ein „append“ sondern nur über „edit“ in die Datenbank eingetragen werden kann. Außerdem ist es nicht möglich die Tabelle direkt mit einem dbgrid zu koppeln um Aktualisierungen für jeden User sofort anzuzeigen. Die Anzeige der Daten erfolgt über eine SQL-Abfrage. Im Einplatzbetrieb kein Problem. Der User sucht sich eine freien Termin im dbgrid, welches über die SQL-Abfrage gespeist wurde, der dann in die Datenbanktabelle eingetragen wird. Anschließend wird die Abfrage erneut ausgeführt um das dbgrid zu aktualisieren.
Für mich stellt sich das Problem im LAN-Betrieb, wenn ein zweiter User auf die Datenbank zugreift. Wie oben beschrieben bekommt dieser Nutzer nichts von dem neu eingetragenen Termin mit, da das dbgrid ja nicht direkt mit der Datenbank verbunden ist und somit auch nicht automatisch aktualisiert wird. Er hat immer noch den alten Zustand der Termintabelle im grid, da dieser ja über eine Abfrage angezeigt wird. Wie bekomme ich es hin, wenn der User 1 einen Termin einträgt, das User2 diesen neuen Termin in seinem Grid sieht? Mit einen Button der zur Aktualisierung die Abfrage erneut ausführt, bin ich nicht glücklich. Dieses muss irgendwie automatisch passieren. Mir schwebt auch schon etwas vor, indem ich eine Userverwaltung einbaue und darüber den Zugriff von Aktualisierungen steuere. Vielleicht hat einer von euch eine elegantere, einfachere Lösung.

Olaf
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Aktualisieren von einem dbgrid im LAN

  Alt 31. Jul 2009, 11:33
Hallo,

eine Protokolldatei mitführen,
die mind. einträgt wann das letzte mal was gemacht wurde.
(DateOfLastChange ...)

Dann alle X Minuten oder beim Ändern-Klick des Nutzers
auslesen und mit dem selbst sich gemerkten letzten Datum vergleichen.
Ist es verschieden, wurde was geändert -> Neuladen.

Schwieriger wäre eine direkte Synchronisation,
z.B. ein Server, wo die Programme sich anmelden
und über Änderungen informieren.


Man könnte bie File-DBs auch das Dateidatum prüfen ...


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

Re: Aktualisieren von einem dbgrid im LAN

  Alt 31. Jul 2009, 11:53
Zitat von hoika:
(DateOfLastChange ...)
Soetwas ist meines Erachtens auch der beste Weg, wobei man hier anstatt eines echten Datums nach meiner Erfahrung besser einen Counter nimmt und diesen jedes mal erhöht wenn ein Client eine Änderung macht. Das kann man die DB sogar selber machen lassen in eine dafür angelegte Tabelle.
Hat den Vorteil, dass man keine absolute Zeit mehr benötigt - die es ja nicht gibt - und die Abfragen, ob die Werte noch aktuell sind, bleiben klein.

Gruß, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
olaf

Registriert seit: 4. Mai 2009
Ort: Iserlohn
82 Beiträge
 
RAD-Studio 2009 Pro
 
#4

Re: Aktualisieren von einem dbgrid im LAN

  Alt 2. Aug 2009, 11:54
Hallo,

vielen Dank für die Vorschläge. Werde einen Counter in einer Tabelle mitführen und darüber die Aktualsierungen der Clients machen, indem ich in kurzen Zeitintervallen den Counter abfrage. Einfach und genial, hat mir sehr geholfen.

Olaf
  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 14:43 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