Autor Beitrag
Achenbach
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 16.06.03 08:41 
Hallo zusammen,
ich muß zwei identisch aufgebaute Paradox-Datenbanken "abgleichen". Das Problem ist, das die Datenbanken auf zwei von einander getrennten Standorten laufen. Die "Syncronisation" muß per EMail erfolgen, da keine Netzwerkverbindung zwischen den Orten besteht. Hat schon mal jemand so ein Problem gahabt? Wie habt ihr es gelöst (Schema)? Meine Gedanken gehen in Richtung exportieren in ein DB-File mit anschließendem automatischen "einpflegen". Das Problem ist weiterhin, das auf beiden Seiten die Daten ergänzt werden. Eine ISDN-RAS einwahl in Verbindung mit einem SQL-Server möchte ich umgehen.

Gruß

Christian
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Mo 16.06.03 08:57 
Da bist Du mit Paradox schlecht dran. Das gibt Arbeit. Interbase wäre die ideale Lösung, da es die einzige DB ist, die eine Multi-Generationen-Architektur hat, was bedeutet, mehrere "Zustände" der DB sind da drin gespeichert z.B. Stand von 9:00 von 10:00, so daß nur der Unterschied abgeglichen werden muß. Und das geht sogar während des laufenden Betriebes.

_________________
Gruß
Hansa
kiwicht
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1021

Win 7, MacOS
Delphi x, VBA, PHP, ...
BeitragVerfasst: Mo 16.06.03 10:56 
Bevor ich jetzt sinnlos mein SQL-Script poste, fräg ich nochma nach:

Du hast also in DB1 den Artikel XYZ der 10 mal verkauft wurde. In DB2 wurde der Artikel als 15 mal verkauft gebucht.
Und jetzt soll in der Haupt-DB der Artikel XYZ als 25 mal verkauft gebucht werden, also als Summe bzw. Zusammenführung von DB1 und DB2, hab ich das richtig verstanden?

Wenn ja: Ein ähnliches Problem habe ich selber gerade erst bewältigt.
Ich hätte also n Idee wie man das über ein Programm und über SQL lösen könnte... wenn nicht, schade ;)


mfG
grayfox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 800

win98, winXP
D4 Standard; D6 Personal
BeitragVerfasst: Mo 16.06.03 14:43 
hallo kiwicht!

ist das neu?
Zitat:

ACHTUNG! Delphi-Noob mit erhöhter Posting-Zahl - Bitte keine Fachfragen stellen !ACHTUNG!

:lol:

ich hab das selbe problem mit tables gelöst. dazu hab ich einen ergebnis-table angelegt, in welchem ich den eintrag mit dem letzten änderungsdatum weggeschrieben habe.
table1 liegt am desktop, table2 am laptop.
table1 wird sequentiell durchlaufen und über ein indexfeld wird der zugehörige eintrag in table2 gesucht. findet er was, wird derjenige eintrag mit dem höchsten änderungsdatum in die neue tabelle aufgenommen und der datensatz in table2 als bearbeitet vermerkt.
findet er nix, dann ist es ein neuer satz und er kommt in die tabelle. ebenso alle übriggebliebenen aus table2.
die originaltabellen werden ge-backuped und aus dem ergebnistable werden die neuen tables auf dem desktop und dem laptop.
[delphi 4 + BDE + paradox 7]
wenn dir eine einfachere lösung dazu eingefallen ist, dann her damit! :wink:

mfg, stefan
ps: dein nick erinnert mich immer an eine kiwi :)
Achenbach Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Di 17.06.03 20:31 
Titel: Sinnloses Nachfragen
kiwicht hat folgendes geschrieben:
Bevor ich jetzt sinnlos mein SQL-Script poste, fräg ich nochma nach:

Du hast also in DB1 den Artikel XYZ der 10 mal verkauft wurde. In DB2 wurde der Artikel als 15 mal verkauft gebucht.
Und jetzt soll in der Haupt-DB der Artikel XYZ als 25 mal verkauft gebucht werden, also als Summe bzw. Zusammenführung von DB1 und DB2, hab ich das richtig verstanden?

Wenn ja: Ein ähnliches Problem habe ich selber gerade erst bewältigt.
Ich hätte also n Idee wie man das über ein Programm und über SQL lösen könnte... wenn nicht, schade ;)


mfG


Also die Sache ist die: Ich habe eine DB A. Die Benutzer der DB A geben in einem Feld Daten ein (konkret heisst das, das es ein integer-feld gibt indem Zahlen von 1-10 gespeichert werden. Jede Zahl entspricht einem "Auftragsstatus", z.B. Auftrag erfasst). Die Benutzer der DB B müssen nun den Status ändern können (z.B. Auftrag in Fertigung). Diese geänderten Daten sollen dann in DB A eingepflegt werden, d.h. die Benutzer sollen sehen, das sich der Auftragsstatus geändert hat.
Als weiteres Beispiel kann ich folgendes nennen:
Die Benutzer der DB A am Standort A erfassen die Kundennamen, Adressen, etc.. Nun sollen diese Daten automatisch mit der DB B am Standort B gemischt werden. Diese Daten werden auch an Standort B bearbeitet, ergänzt, geändert. Diese Änderungen müssen aber wiederrum in der DB A auftauchen. Das ist mein ganzes Problem.

Gruß
Christian
kiwicht
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1021

Win 7, MacOS
Delphi x, VBA, PHP, ...
BeitragVerfasst: Di 17.06.03 20:41 
Zitat:
ist das neu?
Zitat:

ACHTUNG! Delphi-Noob mit erhöhter Posting-Zahl - Bitte keine Fachfragen stellen !ACHTUNG!


Reaktion auf folgenden Thread:
www.delphi-forum.de/...rder=asc&start=0

:D

Zum Problem:
Dann ergänze doch noch die Datenbanken um ein Feld "aktualisierung" in dem bei jeder Änderung das Datum und die Zeit gespeichert werden.
Bei dem Zusammenführen der beiden DB´s werden dann einfach die alten Daten durch die neuen Daten überschrieben...

Ausser für den Fall, das es sich um Bestände handelt, da werden die Daten dann beispielsweise aktualisiert.

Trifft das ungefähr dein Problem??
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Mi 18.06.03 00:20 
Ist das eine größere Sache mit Außendienst usw.? Laptop Abgleichung in der Richtung ? Dann nimm wirklich Interbase, wie Daimler-Benz, echt.

_________________
Gruß
Hansa
grayfox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 800

win98, winXP
D4 Standard; D6 Personal
BeitragVerfasst: Mi 18.06.03 10:48 
@kiwicht:
Zitat:

und der datensatz in table2 als bearbeitet vermerkt.

die bearbeiteten merkt er sich eh schon, sonst würd ich ja die übriggebliebenen, neuen nicht selektieren können :)
ich hatte schon angst, dass du was revolutionäreres erfunden hast ;)

mfg, stefan
ps: den beitrag zu dem link hatte ich schon gelesen *g*