vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Datenbanken
Tabellen zweier DBs syncronisieren 
Autor: I.V.
Datum: 04.04.17 12:43

Hallo zusammen,

ich habe mal wieder ein Problem und finde keinen Lösung.
Und mal wieder hoffe ich auf eure Hilfe.

Mein Problem:

Ich habe zwei Tabellen in zwei Datenbanken (mysql) (zwei verschiedenen Servern).
Die eine Tabelle wird von unserem System aktualisiert, hier sind immer nur die aktuellen Daten.
Die zweite Tabelle hat eine identische Struktur, allerdings möchte ich die jeweiligen Datensätze als neuen Datensatz einfügen, wenn es eine Änderung im Datensatz gab.

Mein erster Gedanke war eine Schleife, mit der ich die jeweiligen Datensätze vergleiche und ggf. einfüge, doch wenn dass regelmäßig laufen soll, ist das wohl sehr zeit raubend.

Hat da evtl. jemand von euch eine Idee?

Danke und Gruß Ingo

Wer aufhört sich zu verbessern, hört auf gut zu sein.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Tabellen zweier DBs syncronisieren 
Autor: Manfred X
Datum: 04.04.17 20:17

Hallo!

Füge den Tabellen Deiner "stets aktuellen" Datenbank jeweils eine
neue Spalte hinzu und trage dort bei Bearbeitung von Sätzen den Status
der entsprechenden Daten-Zeile ein:
- hinzugefügt
- geändert
- gelöscht

Bei der Synchronisierung werden in jeder Tabelle die
abgefragten, markierten Datensätze der "aktuellen" DB in der
Backup(?)-DB entsprechend gelöscht, aktualisiert oder eingefügt.
In den Tabellen der "stets aktuellen" DB werden die Einträge
der Datensätze in der Markierspalte danach auf "neutral" zurückgesetzt.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Tabellen zweier DBs syncronisieren 
Autor: Franki
Datum: 05.04.17 05:50

Hallo,

das mit der Schleife funtioniert schon, aber es geht auch einfacher...

Zitat:


Die eine Tabelle wird von unserem System aktualisiert, hier
sind immer nur die aktuellen Daten.
Die zweite Tabelle hat eine identische Struktur, allerdings
möchte ich die jeweiligen Datensätze als neuen Datensatz
einfügen, wenn es eine Änderung im Datensatz gab.


Na ja, du weißt ja wann welcher Datensatz in der ersten DB verändert / aktualisirt wird. Also kannst du dann ja ganz gezielt mit dessen ID auf die zwete DB zugreifen und den ensptrechende Datensatz dort auch in den relevanten Bereichen ändern.

Zitat:


Mein erster Gedanke war eine Schleife, mit der ich die
jeweiligen Datensätze vergleiche und ggf. einfüge, doch wenn
dass regelmäßig laufen soll, ist das wohl sehr zeit raubend.


Wie gesagt, eine Schleife brauchst du nicht, da die jweiligen Datensätze ja bekannt sind (und wahrscheinlich eine eindeutige ID oder so haben)

Wenn du z.B. Datensatz 4711 ändern möchtest, dann rufe genau diesen Datensatz in der andern DB auf, schreibe die geänderten Werte rein und gut ist es.
Eine komplette Liste ist das völlig unnötig und auch nicht userfreundlich.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Tabellen zweier DBs syncronisieren 
Autor: Manfred X
Datum: 05.04.17 07:42

Hallo!

Ganz so einfach ist es wohl nicht gemeint.
Die "Backup"-DB soll anscheinend den Verlauf der Modifikationen enthalten:

[I]Ich habe zwei Tabellen in zwei Datenbanken (mysql) (zwei verschiedenen Servern).
Die eine Tabelle wird von unserem System aktualisiert, hier sind immer [U]nur[/U] die aktuellen Daten.
Die zweite Tabelle hat eine identische Struktur, allerdings möchte ich die jeweiligen
Datensätze als [u]neuen Datensatz[/B] einfügen, wenn es eine Änderung im Datensatz gab.[/I]

Ein Abgleich der Datensätze über die ID ist in diesem Fall nicht möglich.
Zweckmäßig könnte es sein, die ID der Sätze in der aktuellen Datenbank in eine zusätzliche
Spalte der Tabellen in der Backup-DB zu übernehmen (Rückverzeigerung).
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Tabellen zweier DBs syncronisieren 
Autor: I.V.
Datum: 05.04.17 09:54

Guten Morgen zusammen,

danke für eure Ideen, doch leider geht das so nicht.

Das Füllen der Tabelle aus dem System erfolg täglich und es werden hier immer alle Daten gelöscht und die neuen Daten des letzten Jahres neu geschrieben. Wenn ich also ein zusätzliches Feld einbaue, wird es immer leer sein.
Auf das Übertragen der Daten habe ich leider keinen Einfluss. Dies ist ein automatischer Prozess der von der EDV Abteilung inizieiert wurde. Hier eine Änderung zu erreichen ist er müßig.

Die zweite Tabelle soll einen Verlauf darstellen, das heißt, wenn ein Datensatz in dieser Tabelle schon vorhanden ist und bei einem Feld ein anderer Wert (Betrag) steht, dann soll ein neuer Datensatz eingefügt werden.

Bei den Daten geht es um Artikelkosten. In unserem Hauptsystem ist keine Historie möglich.
Deshalb dieser Weg.

Danke und Gruß Ingo

Wer aufhört sich zu verbessern, hört auf gut zu sein.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Tabellen zweier DBs syncronisieren 
Autor: Manfred X
Datum: 05.04.17 14:37

Hallo!

[I]Das Füllen der Tabelle aus dem System erfolg täglich und es werden hier immer
alle Daten gelöscht und die neuen Daten des letzten Jahres neu geschrieben.[/I]

Das verstehe ich leider nicht.

Vor dem Löschen der Daten muß natürlich die Aktualisierungsroutine laufen,
die die als geändert markierten Datensätze in die Verlauf-DB einträgt.

Allerdings: Wenn ohnehin alle Daten täglich neu sind, müssen sie doch alle in den
Verlauf ???
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Tabellen zweier DBs syncronisieren 
Autor: I.V.
Datum: 05.04.17 16:02

Hallo Manfred,

ich hohle mal etwas weiter aus.
Wir habe Hauptsystem Infor. Mit Win XP konnten wir direkt auf die Datenbank zugreifen und uns Daten, z.B. zur Entlohnung (Arbeitszeiten, gemeldete Aufträge usw.) heraus holen.
Ab Win 7 ging das wegen der ODBC Treiber nicht mehr.
Deshalb wurde eine DB mysql DB mit identischen Tabellen erstellt und täglich werden dann alle Inhalte gelöscht und neu geschrieben
Ich hätte das auch anders gemacht (habe ich auch vorgeschlagen), aber es ist halt so.

Ich möchte jetzt, wie beschrieben, eine Historie von verschiedenen Daten und ich dachte halt, dass ich dann regelmäßig nen Job mit einem "Insert into ..." laufen lassen könnte.

Da die Tabellen aber nicht in ein DB sind, weiß ich noch nicht, wie ich das machen kann.

Gruß Ingo

Wer aufhört sich zu verbessern, hört auf gut zu sein.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel