2016-05-23 15 views
2

Ich habe einen ForEach-Schleifencontainer, der die Datensätze in einem Ado-Enumerator durchlaufen soll. Der Enumberationsmodus = Zeilen in der ersten Tabelle.SSIS Foreach-Schleifencontainer durchläuft nur eine Iteration in der Entwurfsumgebung

Ich habe eine Skriptaufgabe erstellt, um eine MessageBox für jede Iteration zu schreiben. Es zeigt nur die Nachricht für die 1. Iteration. Danach hängt es.

Ich habe versucht, die Lösung zu bauen und das Paket und es funktioniert gut. Aber im Bereich Entwicklung/Design hängt es immer noch.

Soll das im Entwurfsmodus funktionieren? Wie kann ich Dinge unterhalb des Foreach-Containers testen, wenn es beim Debuggen hängen bleibt?

+0

Sie können einen Debug-Punkt in Ihrem Code hinzufügen, um durchzulaufen und zu sehen, ob Sie die Schleife bekommen, aber es trifft nur nicht auf das Meldungsfeld? Ehrlich gesagt ist das Meldungsfeld wirklich nicht etwas, das Sie normalerweise in ssis aufgrund der Art der erwarteten Bereitstellung sehen. Sie können es, aber es ist wirklich nicht der beste Weg, um Debugging zu gehen sssis – SFrejofsky

Antwort

0

Nein, die ForEachLoop funktioniert im Entwurfsmodus genauso wie bei der Bereitstellung auf einem Server. Wenn Sie es nur einmal durchlaufen sehen, dann ist die wahrscheinlichste Erklärung, dass es nur ein Element gibt, über das iteriert werden kann, und Ihre Daten sind nicht das, was Sie denken.

Wie in einem Kommentar vorgeschlagen, können Sie einen Unterbrechungspunkt vor und/oder während der Schleife einfügen und mithilfe von Watches in Ihre Variablen hineinschauen, um zu sehen, welche Werte sie haben. Dadurch können Sie sehen, warum Ihr ADO-Objekt nur ein einzelnes Element enthält.

2

Wenn SSIS in Visual Studio/BIDS/SSDT ausgeführt wird und es scheint nur zu hängen, vor allem, wenn es eine Skriptaufgabe gibt, sehen Sie in der Taskleiste nach. 11/10 ist ein Dialog aufgetaucht, der anzeigt, dass Sie einen Fehler in Ihrem Code haben.

Wenn Sie Nachrichtenfelder öffnen, wird der erste Fokus angezeigt, wenn er geöffnet wird, aber die folgenden werden nicht automatisch fokussiert.

Meine persönliche Präferenz ist FireInformation Ereignisse über Meldungsfelder, wie sie arbeiten, ob der Prozess im Modus "Beaufsichtigt versus unbeaufsichtigt" ausgeführt wird. Beispiel über here

+0

"Wie Sie Nachrichtenboxen knallen ..." bedeutet, es ist nicht der Fall, dass ein Fehler markiert wurde, aber der Punkt der Schwierigkeit ist der gleiche - Ihre Nachrichtenbox befindet sich unter einem anderen Fenster. – Smandoli