Vi ricordate il problema sul mapping tra tipi di dato BigInt di sql server e Int64 di Integration Services che avevo segnalato tempo fa?
http://blogs.dotnethell.it/suxstellino/Post_3959.aspxAndrea Benedetti ha utilizzato un semplice Workaround per ovviare al problema:
"..personalmente utilizzo una variabile
ponte (ad esempio: string_miaVariabileBigInt) di tipo string in cui vado a memorizzare il valore bigint uscente dalla query.
Aggiungo uno script task al cui interno vado semplicemente a castare la
variabile stringa in Int64 ed a valorizzare di conseguenza la variabile intera,
scrivendo qualcosa come:
Dim i As Int64 = Convert.ToInt64(Dts.Variables("string_miaVariabileBigInt").Value)
Dts.Variables("miaVariabileBigInt").Value = i
A questo punto la mia variabile, che inizialmente doveva essere valorizzata
dalla query, è correttamente popolata (con un passaggio in più)."
Effettivamente è un passo in più a quello che di solito utilizzo io (semplici stringhe e varchar)
che ci consente di ritornare comunque al tipo di dato per cui l'applicazione era stata progettata. Utilizzare un BigInt e un Int64.
Stay Tuned!