Steuerung DTS-Package aus VB

05/03/2008 - 14:13 von wiscom | Report spam
Hallo zusammen!

Ich möchte innerhalb unserers SQL-Servers 2000 aus DB1 einzelne Rows
aus mehreren Tabellen (ca. 25) nach DB2 in gleichnamige Tabellen
kopieren. Gleiches Schlüsselmerkmal ist "ProjectNo". Also noch kürzer
(und vielleicht klarer): ich will alle Rows für Projekt "xyz" von DB1
nach DB2 kopieren.

Ich habe DTS-Packages als VB-Files erstellt und diese als Module im VB
eingefügt. Das ganze funktioniert eigentlich bestens.

Nun möchte ich aber folgendes: Wenn die ProjectNo im Zielsystem schon
existiert, soll stattdessen die nàchst verfügbare geschrieben werden.

Wie kriege ich es hin, in meinem VB-DTS-Modul einen bestimmten
Destination-Feldinhalt zu überschreiben? Die Beschreibung zu DTS im
SQL-Server-Help ist ja schon ausführlich, aber diesen Aspekt kann ich
da irgendwie nicht rauslesen.

Könnt Ihr mir auf die Sprünge helfen? Bin für alle Tipps dankbar.

Gruss
Walter
 

Lesen sie die antworten

#1 Elmar Boye
05/03/2008 - 16:51 | Warnen spam
Hallo Walter,

schrieb:

Ein vollstàndiger Name im Absender wird hier gern gesehen. Danke.

Ich möchte innerhalb unserers SQL-Servers 2000 aus DB1 einzelne Rows
aus mehreren Tabellen (ca. 25) nach DB2 in gleichnamige Tabellen
kopieren. Gleiches Schlüsselmerkmal ist "ProjectNo". Also noch kürzer
(und vielleicht klarer): ich will alle Rows für Projekt "xyz" von DB1
nach DB2 kopieren.

Ich habe DTS-Packages als VB-Files erstellt und diese als Module im VB
eingefügt. Das ganze funktioniert eigentlich bestens.



Daraus kannst Du normalerweise verzichten. DTS Pakete können als
Active-X/COM Objekte direkt ausgeführt werden, siehe z. B.:
http://www.sqldts.com/208.aspx

Das Konvertieren als VB Code erschwert nur die Wartung und kann
u. U. zu Fehlern führen, die dann wiederum schwer zu finden sind.
Ein DTS Paket wiederum kannst Du im Designer testen und auch Änderungen
ohne weiteres integrieren, in dem Du das Paket austauscht - ohne die
Anwendung neu zu erstellen.

Nun möchte ich aber folgendes: Wenn die ProjectNo im Zielsystem schon
existiert, soll stattdessen die nàchst verfügbare geschrieben werden.

Wie kriege ich es hin, in meinem VB-DTS-Modul einen bestimmten
Destination-Feldinhalt zu überschreiben? Die Beschreibung zu DTS im
SQL-Server-Help ist ja schon ausführlich, aber diesen Aspekt kann ich
da irgendwie nicht rauslesen.



Genau so etwas wàre besser im DTS Paket gelöst.
Leider schreibst Du nicht, wie Dein Datenfluss aussieht, also wo
die Daten herkommen, aufbereitet werden usw.
So zunàchst nur der Hinweis, dass Du mittels VB-Script in die
Verarbeitung eingreifen kannst. Mittels der Nachschlagefunktion
kannst Du zunàchst prüfen, ob ein Wert vorhanden ist, und ggf.
auch den nàchsten ermitteln. Falls mehrere Schritte erforderlich
ist, kannst Du den Wert in einer globalen Variablen zwischenspeichern.
Siehe auch: http://www.sqldts.com/277.aspx

Gruß
Elmar

Ähnliche fragen