Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Synchronisieren von embedded und "remote" Datenbank (https://www.delphipraxis.net/154419-synchronisieren-von-embedded-und-remote-datenbank.html)

CG2003 9. Sep 2010 22:12

Datenbank: MySQL • Version: 4.1 • Zugriff über: MyDAC

Synchronisieren von embedded und "remote" Datenbank
 
Guten Abend,

ich habe mal wieder eine Datenbankfrage.

Folgendes Szenario:
5 Benutzer nutzen ein Client-Programm mit Embedded Datenbank.
Beim ersten Start prüft dieses Programm, ob die Datenbank bereits vorhanden ist, falls nein, zieht Sie sich diese
über einen Dump in das Embedded-System.

Nun soll jeder Benutzer Daten ändern, löschen etc. können und diese Vorgänge sollen sich aber auch
auf der Datenbank wiederspiegeln, die auf dem Server liegt.

Hintergrund ist, dass Techniker somit Service-Manuals etc. in ihrem embedded System haben und z.B.
Firmware-Dateien in ein BLOB-Feld speichern damit jeder (nach Synchronisierung) auch die aktuellste Version hat.

Wie kann ich dies programmtechnisch in meinem Client-Programm am Besten umsetzen?

Habe mir schon mal BatchMove angeschaut, bin mir aber nicht sicher, ob es das Richtige ist?

Ich bin noch relativ neu im Datenbank-Segment. Ich hoffe, Ihr habt etwas Nachsicht und könnt mir helfen.

XHelp 10. Sep 2010 02:09

AW: Synchronisieren von embedded und "remote" Datenbank
 
Benutzer 1 ändert Eintrag A auf "abc"
und Benutzer 2 ändert Eintrag A auf "xyz"
Wie willst du denn mit solchen Situationen umgehen?
Falls du jemals mit CVS gearbeitet hast, läuft es auf das gleiche Problem hinaus.

Brainstalker 10. Sep 2010 02:35

AW: Synchronisieren von embedded und "remote" Datenbank
 
Wenn mehrere User auf eine Datenbank zugreifen sollen, ist dein vorgehen zu riskant wie XHelp schon gesagt hat. Embedded Datenbanken sind nur für einen Client gedacht, z.B. für ne Filmdatenbank auf deinem PC. Sollen mehrere Clients auf eine Datenbank zugreifen, brauchst du ein DBMS. Das kümmert sich um alle Zugriffe und verhindert, das zwei Clients gleichzeitig auf Daten zugreifen.

Du scheinst doch schon eine Datenbank auf einem Server zu haben. Warum benutzt du die denn nicht? Oder ist das auch nur eine embedded? Dann hast du hier den völlig falschen Ansatz.

alzaimar 10. Sep 2010 08:12

AW: Synchronisieren von embedded und "remote" Datenbank
 
Ich kann mir vorstellen, das in dem Szenario so ein Konflikt selten auftritt. Und wenn ja, kann das beim Zurückspielen der Daten leicht erkannt werden.

Wenn z.B. verschiedene Außendienstarbeiter an Kundendaten und den damit verbundenen Aufträgen usw. ändern, wird dies sehr selten zu einem Konflikt führen, denn dann müssten die Mitarbeiter nacheinander bei ein und dem selben Kunden aufschlagen...

CG2003 11. Sep 2010 10:01

AW: Synchronisieren von embedded und "remote" Datenbank
 
Nunja, die Aussendienstmitarbeiter können die Daten ja nicht synchronisieren, da sie unterwegs keine Internet- bzw. VPN-Verbindung zum DB-Server haben.
Daher habe ich mich zumindest bei den Laptops für die embedded-Varianbte entschieden.
Also völlig verkehrt?

mkinzler 11. Sep 2010 10:05

AW: Synchronisieren von embedded und "remote" Datenbank
 
Nein, da bietet sich der embedded geradezu an.

Ich würde aber primär versuchen auf der Server-DB zu arbeiten und nur im Rückfall die embedded nutzen.
Für die verschiedenen Mitarbeiter würde ich eigene Nummernkreise verwenden, so dass nach Rückkehr ins Netz und anschliessender Synchronisation keine Überlappungen vorkommen.

CG2003 11. Sep 2010 10:44

AW: Synchronisieren von embedded und "remote" Datenbank
 
Mit Nummernkreise meinst Du die ID's der Datensätze, oder?
So müsste ich dann quasi in meiner User-Tabelle einfach eine Spalte für das ID-Format einfügen, oder?

Und wie kann ich eine solche "Synchronisierung" von meinem Programm aus anstoßen?
Geht das wirklich mit BatchMove?

mkinzler 11. Sep 2010 10:53

AW: Synchronisieren von embedded und "remote" Datenbank
 
Zitat:

Mit Nummernkreise meinst Du die ID's der Datensätze, oder?
Ja.
Zitat:

So müsste ich dann quasi in meiner User-Tabelle einfach eine Spalte für das ID-Format einfügen, oder?
Wenn es vom Nutzer abhängen soll.
Man könnte es aber auch vom Client abhängig machen und das in der jeweilen embedded DB hinterlegen.
Zitat:

Und wie kann ich eine solche "Synchronisierung" von meinem Programm aus anstoßen?
Da gibt es auch fertige Lösungen

manfred_h 11. Sep 2010 17:08

AW: Synchronisieren von embedded und "remote" Datenbank
 
ID's:
Wieso verwendest Du keine GUID?

Zitat:

Und wie kann ich eine solche "Synchronisierung" von meinem Programm aus anstoßen?
Da gibt es auch fertige Lösungen[/QUOTE]

CopyCat funktioniert da gut:
http://www.microtec.fr/copycat/

Shalom
Manfred


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:07 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