Einzelnen Beitrag anzeigen

Haueha

Registriert seit: 29. Aug 2006
2 Beiträge
 
#3

Re: SQL Server <-> MSDE 2000 - Synchronisation anstoße

  Alt 30. Aug 2006, 16:13
Hallo shmia,

vielen Dank für deine schnelle Hilfe. Habe mich mit deinen Tipps einen Augenblick beschäftigt.

Zitat von shmia:
Deine Aufgabe lässt sich über MSDN-Library durchsuchenSQLDMO erledigen.
Dazu im Delphi-Menü:
Projekt->Typbibliothek installieren... und "Microsoft SQLDMO Object Library" auswählen und
Unit anlegen klicken.

Du wirst nun von der Anzahl der Interfaces fast erschlagen (100 oder mehr ?).
Welches Interface du wie ansteuern musst, kann dir am ehesten in einem MS Forum erklärt werden.
Über SQLDMO hast du die Kontrolle über alles was mit dem SQL Server zu tun hat; es ist nur etwas viel für den Anfang.
http://support.microsoft.com/kb/324992/
Hier mußte ich diverse Klassen erstmal neu benamslen, da Klassen wie "TApplication" natürlich schon bekannt waren. Und das dann eben Xmal. Dann gabs beim kompilieren noch ein paar Fehler. Anschließend stand ich vor dem Problem, welche der Komponenten es denn nun tun könnte, wie du schon vermutest hast.

Um es kurz zu machen, ich habe die Synchronisationsfunktion von XP genutzt, zu finden unter Start / Alle Programme / Zubehör / Synchronisieren. Das, was ich aus meinen Programm machen wollte, kann ich auch übers Betriebssystem steuern. Keep it simple ...

Es läuft nun wie folgt:
1). Delphi Programm starten
2). "Mandanten" auswählen, also die SQL DB, mit der man verbunden sein will (Zentral = SQL Server = Netzwerk oder Mobil = MSDE = lokal)
3). Will man synchronisieren, dann über Start / Alle Programme / ..... / Synchronisieren. Fertig

Läuft einwandfrei und ist super simple. Damit hat man auch die drohende Vielzahl von Sychronisations Jobs (der Merge Push Agenten) vom SQLServer genommen. Die Richtung ist quasi umgedreht, also vom Client initiiert. Die Merge Pull Agenten laufen lokal auf der jeweiligen MSDE. Macht auch deshalb Sinn, weil man für Merge Push Agenten nicht die Option "on demand" einstellen kann, sondern diese nur zeitgesteuert/ereignisgesteuert laufen. Ich wollte ja nur dann synchronisieren, wenn der Mitarbeiter mit seinen Laptop am Netz hängt und es explizit ausführt.

Gruß, Andreas
  Mit Zitat antworten Zitat