AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DB Abgleich

Ein Thema von Tim Henford · begonnen am 11. Sep 2007 · letzter Beitrag vom 13. Sep 2007
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#21

Re: DB Abgleich

  Alt 11. Sep 2007, 15:52
Du suchst Dir die Datensätze im voraus aus, die Du ändern musst - und bei denen Du den User um angaben bitten musst.
Auf genau diese setzt Du einen rowlock. Damit können diese Datensätze (und auch nur diese) nicht mehr geändert (oder gelöscht) werden. Und dann änderst Du die in einer Transaktion.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Tim Henford

Registriert seit: 14. Sep 2006
169 Beiträge
 
#22

Re: DB Abgleich

  Alt 12. Sep 2007, 14:55
Vielleicht wären noch ein paar Hinweise hilfreich, wie man mein Problem am besten löst:

Es sind im Moment 4 PCs die verschiedene Sachen messen und in unterschiedlichen Tabellen auf einer DB speichern sollen. Dabei kann es aber sein, dass diese ab und zu nicht am Netz hängen oder aus einem dummen Zufall mal abstürtzen können.
Mehr nicht, die sammeln eigentlich nur Daten.
Allerdings kommen im Laufe der Zeit immer mal andere Parameter/Spalten hinzu und evtl. wieder weg.

Dann soll es noch möglich sein, diese gesammelten Daten zu vergleichen, bearbeiten und eventuell zu löschen von 3 anderen Leuten, jeder an einem anderen PC, die aber auch nicht immer mit dem DBServer verbunden sein können und ihre Daten "offline" ändern müssen.
Wäre es da sinnvoll lokal auch einen MSSQL Server laufen zu haben?

Danke Tim
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#23

Re: DB Abgleich

  Alt 12. Sep 2007, 14:59
Ja ich würde überall die MSDE/SQL Express Laufen lassen, und jedem PC einen anderen ID-Bereich geben, so ist es relativ einfach die daten auf Serverseite zusammenzuführen; auch automatisch.
Markus Kinzler
  Mit Zitat antworten Zitat
Tim Henford

Registriert seit: 14. Sep 2006
169 Beiträge
 
#24

Re: DB Abgleich

  Alt 12. Sep 2007, 15:07
Wie genau funktioniert dann das "serverseitige Zusammenzuführen"?
An dieser Stelle komm ich irgendwie nicht weiter. Ich dachte mir, dass ich mittels Programm sage, jetzt soll ein Abgleich erfolgen und wenn es nicht klappt, soll es eben nur wieder lokal gespeichert werden.

Wie merke mein Programm, ob der Eintrag schon von jemand anders verändert wurde und kann den Nutzer entscheiden lassen, ob seiner richtig ist oder der auf der ServerDB?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#25

Re: DB Abgleich

  Alt 12. Sep 2007, 15:18
Durch eine Replikationslösung
Markus Kinzler
  Mit Zitat antworten Zitat
Tim Henford

Registriert seit: 14. Sep 2006
169 Beiträge
 
#26

Re: DB Abgleich

  Alt 12. Sep 2007, 15:21
ja davor saß ich ja, aber wie kommuniziert die DB dann mit meinem Programm, also sagt: den Eintrag gibt es schon oder sowas?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#27

Re: DB Abgleich

  Alt 12. Sep 2007, 15:30
Nochmal zum Mitschreiben:
-Jeder Client hat einen eigene Id-Bereich, so kann jeder Eintrag dem Rechner zugeordnet werden, welcher ihn erzeugt hat. Deshalb kann es nicht passieren, daß ein Eintrag schon vorhanden ist! der Replikationsmechanismus sorgt je nach Wunsch nur eine Mischung auf dem Server oder verteilt die Änderungen/Neuerungen der Client auf die anderen Clients.
Markus Kinzler
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

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

Re: DB Abgleich

  Alt 12. Sep 2007, 15:38
Client #1: Vergibt in seinen Tabellen nur ID's 0...10000
Client #2: Vergibt in seinen Tabellen nur ID's 10001...20000
etc.

Dann kannst Du später einfach die Daten zusammenführen (lassen). Das macht der SQL-Server automatisch, man muss ihm das nur sagen (Stichwort: Replikation). Natürlich geht das auch per Hand, indem Du einfach z.B. auf dem Ziel-Server (der im Netz) ab und an die Daten von den Clients saugst und die Client-Daten dann löschst.

Du sprichst außerdem von irgendwelchen Änderungen in der Struktur. Das ist -soweit ich weiss- nicht die Aufgabe einer Replikation, sondern vom Administrator, der dafür Sorge tragen muss, das die einzelnen DB immer die gleiche Struktur aufweisen. Ich verwende dafür ein Tool von 'Red Gate', 'SQL-Compare' heißt das Teil. Das macht genau, was ich will: Es synchronisiert die Struktur, also Tabellenaufbau, Views, Stored Procedures etc. von zwei MS-SQL Datenbanken.

Weiterhin merkt man, das Du hinsichtlich der Ausfallsicherheit etc. von Datenbanken verunsichert bist. Vermutlich hast Du vorher mit einer Desktop 'Datenbank' gearbeitet, z.B. Access, Paradox oder DBase. Da passiert sowas nämlich, das die DB zerschossen ist, wenn beim Speichern der Strom ausfällt. Gegen ein richtiges DBMS kannst Du während des speicherns treten (ok, nicht bei MySQL), da passiert *gar nichts*. So eine richtige DB sorgt auch dafür, das zwei Leute nicht gleichzeitig an Daten rumwuseln können, wenn Du ihr das sagst.

Allerdings benötigt man dafür ein wenig Grundwissen über DB-Konzepte.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Tim Henford

Registriert seit: 14. Sep 2006
169 Beiträge
 
#29

Re: DB Abgleich

  Alt 12. Sep 2007, 15:44
ja danke für die Tipps

was passiert denn z.Bsp, wenn 2 Leute die gleichen Werte offline ändern und dann online ihren Kram hinschicken? Kommt dann erst ein Update sobald man online ist und dann sind die eigenen Änderung überschrieben?

Ich hab das Buch vom Herrn Kosch Ado und Delphi und Datenbanken mit Delphi aber sehr weit bringen die mich dahingehend leider net.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#30

Re: DB Abgleich

  Alt 12. Sep 2007, 15:50
In diesem Fall sollte man festlegen, welcher Benutzer/Client Vorrang hat.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 20:31 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