Hallo Jürgen & mitleser,
da du ja ein ähnliches Problem hast (wenn ich das richtig gesehen habe), hier mal meine (derzeitige, aber noch nicht 100% Lösung):
'Quell DB, Ziel DB, in der Quell, aber nicht in der Ziel DB enthaltene Datensätze
Sub DBCompare (qSQL As SQL, zSQL As SQL) As List
Dim qListe, zListe As List
Dim curs As Cursor
Dim query As String
qListe.Initialize
zListe.Initialize
qListe=DBUtils.ExecuteMemoryTable(qSQL,"Select * FROM Log",Null,0)
For c=0 To qListe.Size-1
Dim varStr() As String =qListe.Get(c)
query= "SELECT * FROM log WHERE Zeit= '" & varStr(2) & "' AND Call='" & varStr(3) & "' AND Send='" & varStr(4) .......
curs = zSQL.ExecQuery(query)
If curs.RowCount<=0 Then
zListe.Add(qListe.Get(c))
End If
Next
Return zListe
End Sub
Musst die natürlich an deine Struktur... anpassen und die Daten müssen noch in die DB geschrieben werden.
Das ganze funkt. (nur das die Daten noch nicht in die DB geschrieben werden).
Lässt man das ganze 2x durchlaufen (mit getauschten Quell und Zielverzeichnis) sind beide DB Synchron.
Es gibt natürlich auch Einschränkungen
- in einer DB gelöschte Einträge werden wiederhergestellt
- wird ein, in beiden DB vorhandener Eintrag editiert, wird er dann 2x vorhanden sein
(beide Versionen), dass kann man (wahrscheinlich) nur mit einer eindeutigen ID pro Datensatz lösen
Es stellen sich mir jetzt noch ein paar Fragen
- gibt es Effektivere Varianten??
Fragen die man für sich selbst beantworten muss
- soll die DB anschl. Sortiert werden
- soll vor dem Schreiben erst mal nachgefragt werden ob die Daten wirklich eingefügt werden soll
Grüße