2017-03-02 9 views
1

Ich versuche, eine dynamische Verbindung mit Verbindungszeichenfolge erstellen. Erforderliche Details wie (IP, DBname, username and password) sind in der Datenbank gespeichert und ich hole diese Details in Execute SQL task und speichern in variables. Von diesen erzeuge ich Verbindungszeichenfolge mit Ausdruck. Dies funktioniert einwandfrei, wenn ich Windows-Authentifizierung mit folgenden Verbindungszeichenfolge verwende.Dynamischer Verbindungsmanager mit SQL-Authentifizierung in ssis

Wenn ich jedoch versuche, Benutzername und Passwort für die SQL-Authentifizierung hinzuzufügen, gibt SSIS mir einen Fehler.

"Data Source="+ @[User::IP] +";User ID="+ @[User::USR] +"Password= "+ @[User::PASS] +" ;Initial Catalog=" + @[User::DBN] + ";Provider=SQLNCLI11.0;" 

Error:

[OLE DB Source [22]] Error: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager XXXXXXXXXXXXX failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed.

nicht sicher, was falsch ist. Kann mir jemand helfen, was ich hier falsch mache?

+0

Sind Sie immer noch die gleichen Fehler nach der Änderung zu ** „Delayvalidation = True“ ** oder einen anderen Fehler bekommen? – Viki888

+0

fügen Sie ein Semikolon vor 'Passwort' hinzu – Hadi

Antwort

0

Zuerst - Sie fehlen Semikolon vor +"Password= " Begriff und haben redundanten Platz am Ende dieses Ausdrucks. Sie müssen mit Verbindungszeichenfolgen wertvoll sein.
Zweitens - wie Sie dynamischen Verbindungs-Manager verwenden, würde ich empfehlen, Task-Eigenschaft DelayValidation = True zu setzen, um Ihre Aufgabe zu überprüfen, bevor es ausgeführt wird, mit der richtigen Verbindungszeichenfolge.

+0

Vielen Dank für schnelle Korrekturen. Ich habe die Korrekturen immer noch gleich gemacht. –

+0

@narendragc, versuchen Sie die folgende Conn String - '" Datenquelle = "+ @ [User :: IP] +"; Benutzer-ID = "+ @ [Benutzer :: USR] +"; Password = "+ @ [Benutzer: : PASS] + "; Erster Katalog =" + @ [Benutzer :: DBN] + "; Provider = SQLNCLI11; Automatischer Übersetzer = Falsch;" Außerdem haben Sie ** DelayValidation ** -Eigenschaft auf ** True ** gesetzt ? – Ferdipux

0

Ihre Verbindung String-Ausdruck sieht gut aus, aber es braucht zusätzliche Leerräume entfernt und ein Semikolon vor password

"Data Source="+ @[User::IP] +";User ID="+ @[User::USR] +";Password="+ @[User::PASS] +";Initial Catalog=" + @[User::DBN] + ";Provider=SQLNCLI11;Auto Translate=False;" 
Verwandte Themen