Jump to content

Variablen korrekt bei den Integration Services vom SQL 2005 Server verwenden.


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...