2011-03-29 14 views
12

Foreach döngüsündeki Klasörü bir değişken konumuna ayarlamalıyım. Konumumu paket yapılandırmamıza eklemeyi denedim ve işe yaramış gibi davrandı, ancak yapılandırma dosyasını açtığımda orada değildi.SSIS Foreach Loop Klasör değişkeni olarak

Foreach File Enumerator olarak ayarlanmış, yol kodlanmış olarak kodlanmış ve Tam nitelikli dosya adını al. Benim değişken Eşlemeler endeksi Yani 0.

ile değişken CurrentFile var, \ sunucu \ yolunun Kaynak Kodlarını değişken ile, Değişken Enumerator itibaren bir foreach bunu değiştirdik *. *. Ancak şimdi bu CurrentFile hakkında, atanan değer türünün değişken türden (string) farklı olduğundan şikayet ediyor.

Sanırım, Koleksiyonlar sekmesinde Enumerator ile İfadeleri bir şekilde kullanmam gerekiyor mu? Nasıl?

  • Genel: Foreach döngü Konteyner
  • Koleksiyonu: Foreach Varialbe Numaralandırıcı itibaren; Değişken Kullanıcıdır :: SourcePath; İfadeler (kullanılmaz)
  • Değişken eşlemeler: Değişken Kullanıcı :: CurrentFile, Dizin 0
  • ifadeler: (kullanılmaz)

Hata: 0xC001F009 mypackage için: değer tipi değişken tahsis edilir " Kullanıcı :: CurrentFile "geçerli değişken türünden farklıdır. Değişkenler yürütme sırasında tür değiştiremez. Nesne türü değişkenleri dışında değişken türler katıdır. Hata: Foreach Döngü Kapsayıcısında 0xC001C012: ForEach Değişken Eşleme sayısı 1'den "Kullanıcı :: CurrentFile" uygulanamaz.

cevap

19

Bir çalışan, nasıl çalıştığını gösterdi. Bunu "Değişken Numaratörden Ayrıl" olarak değiştirmeyin, ancak "Foreach File Enumerator" olarak bırakın.

  • Koleksiyon: Foreach File Enumerator; Enumerator yapılandırmasında bir klasöre ve dosyalara yerleştirin. İfadeler altında, Dizini, dizini işaret eden bir kullanıcı değişkenine ayarlayın (girdiğiniz klasöre öncelik verir); FileSpec'i dosyalara işaret eden bir kullanıcı değişkenine ayarlayın (girdiğiniz Dosyalara önceliği olan).
Directory @[User::SourcePath] (value: \\server\directory) 
FileSpec @[User::CopyFileName] (value: *.*) 
  • Değişken Eşlemeler: Değişken Kullanıcı :: Güncel dosya, endeks 0
  • İfadeler: (kullanılmıyor)