通常、SSIS コンポーネント内では、"String" 型の入力列の長さはユーザー定義です。
私の Output0Buffer の例では、Column1 DataType=Unicode string [DT_WSTR] Length=15 があります。
SSIS プログラム (C#) 内で、値 "15" をプログラムで見つけることは可能でしょうか? 通常、System.Reflection を使用してデータ型を取得し、SetValue メソッドを使用してバッファーに値を割り当てます。
例:
foreach (PropertyInfo p in props)
{
if (p.GetType() == typeof(string))
{
p.SetValue(Output0Buffer, Convert.ToString(value), null);
}
...
}
しかし、バッファサイズを超えて例外がスローされることがあります。これを持っているのではなく、バッファの長さを取得できることを望んでいたので、値をバッファに割り当てる前に切り捨てることができました。
または、バッファの値を割り当てる従来の方法、つまり Output0Buffer.Column1 = value.substring(0,15); を常に行うこともできます。
しかし、それはコードの入力が多すぎるでしょう:)むしろ、バッファプロパティでループスルーして、それに応じて入力したいと思います。
皆さんが私を助けてくれることを願っています。前もって感謝します。