Ich erstelle ein SSIS-Paket und möchte ein Skript einfügen, das überprüft, ob eine Datei vorhanden ist, bevor die Datei abgerufen und in einer Tabelle gespeichert wird.
Ich habe drei separate Variablen, die ich eingerichtet habe:
fileExistFlag Int32 0
fileName String check.txt
folderPath String C:\
Mein C # -Code sieht so aus, wo ich nachschaue:
%Vor%Wenn ich versuche, mein Skript zu kompilieren, erhalte ich den folgenden Fehler:
Cannot apply indexing with [] to an expression of type 'Microsoft.SqlServer.Dts.Runtime.Variables
für alle vier Instanzen.
Wie kann ich das Problem lösen?
Aktualisierter Code:
%Vor%Seltsamerweise scheint dieser Indexer zu existieren Wenn es jedoch nicht funktioniert, können Sie möglicherweise eine Erweiterungsmethode verwenden:
%Vor%und verwenden:
%Vor%stattdessen.
Dies ist eine bekannte BUG in SQL Server BIDS 2005/2008 nach der Installation einer späteren Version von SSIS Seite an Seite. Zum Beispiel, wenn Sie ein SSIS 2008-Paket entwickeln und dann SSIS 2012 installieren.
Eine Problemumgehung besteht darin, die Datei "Microsoft.SQLServer.ManagedDTS.dll" im Pfad zu verschieben: "C: \ Programme (x86) \ Microsoft SQL Server \ 110 \ SDK \ Assemblies" zu einem Sicherungsordner, dann übernehmen die Gebote den Verweis aus dem Pfad "C: \ Windows \ Assembly \ GAC_MSIL \ Microsoft.SqlServer.ManagedDTS \ 10.0.0.0__89845dcd8080cc91 \ "
Aber es scheint nicht für alle Fälle zu funktionieren.
Quelle: