marvel 10 Geschrieben 14. Januar 2009 Melden Teilen Geschrieben 14. Januar 2009 Hallo, diese Frage richtet sich an jemanden, der sich einigermaßen mit den Integration Services und VB auskennt. Ich möchte gerne in meiner Ablaufsteuerung einen SQL Task verwenden, der auch eine sich verändernde Variable nutzt. Wie ich in den SSIS eine Variable definiere weiss ich. Ich habe zwei Ziele. ( Habe beide Ziele inzwischen erreicht. Ich lasse das Posting für andere Interessierte bestehen. ) Ziel 1: ############# Ich würde gerne so ein SQL Statement, welches eine SQL Variable füllt, auf eine Integration Variable anwenden. Das funktioniert als reines SQL Satement: DECLARE @var1 nvarchar(30); select @var1 = Company from "Global_Company_Tabelle" where id = 1; select @var1 as 'ausgabe'; Das bekomme ich leider nur nicht hin. Wenn ich zum Bsp eine SQL Task in den Integration Services anlege mit : select @var1 = Company from "Global_Company_Tabelle" where id = 1; Dann bekomme ich als Fehlermeldung , dass die @var1 Skalarvariable deklariert sein muss. Deklariert ist sie natürlich für die Integration Services innerhalb der Ablaufsteuerung. Nur scheint ein SQL Statement diese definierte Integration Variable nicht sehen zu können. Obiges ist mein erstes Ziel. Ziel 2: ############ Mein zweites Ziel bzw. Frage ist, dass ich gerne innerhalb eines Datenflusses ein SQL Statement brauche, was sich aus dem Statement und der Variable, die ich oben eingelesen habe, zusammensetzt. Also in der Form von select * from @var1 oder mit Parameter select * from ? Das klappt leider auch alles nicht. Hat einer von euch eine Idee? Wäre super. Danke. Lösungsansätze: Laut der Seite: SQL Server Integration Services-Variablen geht das alles was ich will. Nur steht da leider nicht wie das geht: Wie es gehen könnte steht wohl hier: Using SQL Server 2005 Integration Services variables from a Script Task | Programming and Development | TechRepublic.com Das funktioniert auch soweit. Jetzt muss ich es nur noch schaffen einen Wert den ich via sql ermittel in das Script reinzuladen, damit es mit dem Script in die Variable geschrieben wird. Also ein Visual Script welches ein SQL Statement absetzt und den Rückgabewert in eine Variable schreibt. Update ( ein paar Stunden später ) Es geht wohl wie folgt: Dim sqlConnection As System.Data.SqlClient.SqlConnection = _ New System.Data.SqlClient.SqlConnection("server=192.168.123.123; user id=abc; password=123; Database=db_kann_weg;") Dim sqlCommand As System.Data.SqlClient.SqlCommand = _ New System.Data.SqlClient.SqlCommand("select companyname from Global_Company_Tabelle where id = '1'", sqlConnection) Dim reader As SqlDataReader ' Definierte Verbindung öffnen und Kommando ausführen: sqlConnection.Open() sqlCommand.ExecuteNonQuery() reader = sqlCommand.ExecuteReader() reader.Read() 'MsgBox(reader("companyname")) ' MsgBox("After: " & Dts.Variables("select_variable").Value.ToString()) Dts.Variables("ablaufsteuerung").Value = reader("companyname") ' Ggf. offene Verbindung schließen If sqlConnection.State <> ConnectionState.Closed Then sqlConnection.Close() End If reader.Close() Gruß Marvel Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.