Im Allgemeinen ist SSIS nicht für den interaktiven Modus gedacht. Jede Benutzereingabe wird entweder als Konfigurationseinstellung oder Umgebungsvariable oder als Wert in einer anderen Tabelle eingeführt.
Alternativ können Sie Eingabewerte auch außerhalb des SSIS-Pakets eingeben und erfassen und dann das SSIS-Paket in C# oder ASP.Net oder einer anderen interaktiven Plattform ausführen.
Das heißt, , wenn Sie zur Eingabe auffordern müssen und es verwenden,, wie es durch Instanziieren und Anzeigen eines Formulars in einer Skriptkomponente zu tun ist.
Erstellen Sie eine Variable mit dem entsprechenden Bereich namens tableName
im Paket. Verwenden Sie dann den folgenden Code (ändern Sie ihn nach Bedarf), um den Wert tableName
auf den Wert festzulegen, den der Benutzer eingibt. Schließlich verwenden Sie die gleiche tableName
Variable in Ihrem Kontrollfluss, um die Daten zu kopieren.
System.Windows.Forms.Form frm = new Form();
TextBox = new TextBox();
Button submitButton = new Button();
public void Main()
{
submitButton.Text = "Enter source table name";
submitButton.Width = 300;
submitButton.Height = 80;
submitButton.Click += new EventHandler(submitButton_Click);
tableNameTextBox.Name = "Input";
frm.Controls.Add(tableNameTextBox);
frm.Controls.Add(submitButton);
frm.ShowDialog();
MessageBox.Show(Dts.Variables["tableName"].Value.ToString());
Dts.TaskResult = (int)ScriptResults.Success;
}
void submitButton_Click(object sender, EventArgs e)
{
Dts.Variables["tableName"].Value = tableNameTextBox.Text;
frm.Close();
}
Ref: https://stackoverflow.com/a/4121557/325521
Ihr Thema und Anforderung scheint anders. Sie möchten Objekt (Tabelle/View/Fn) oder Daten übertragen? – p2k