SSIS パッケージには 2 つのスクリプト タスクがあります。最初のものは、文字列配列をパッケージ変数として保存します:
// In 1st script task:
String[] astrCustNames = new String[cust_count];
/* ...
* Some code to add strings to array ...
*/
// Add array to a package variable
Dts.Variables["CustomerNames"].Value = astrCustNames;
2 番目のタスクは、変数から文字列を抽出する必要があります。過去に、テーブル変数でこれを行いました。これは文字列配列では機能しません:
// In 2nd script task:
OleDbDataAdapter ole_da = new OleDbDataAdapter();
// Fill the customer names data table
DataTable dtCustNames = new DataTable();
ole_da.Fill(dtCustNames, Dts.Variables["User::CustomerNames"].Value);
データ アダプターを埋める呼び出しにより、"オブジェクトは ADODB.RecordSet または ADODB.Record ではありません" というエラーが発生します。
.dtsx パッケージには、データ型が DTS:DataType="13" としてリストされています。
パッケージで定義されている変数のデータ型は「オブジェクト」です。
// Returns type "Object":
TypeCode cur_type = Dts.Variables["User::CustomerNames"].DataType;
SSIS 変数の配列に格納されている文字列を抽出する例を探していましたが、何も見つかりませんでした。