只能创建3个文件:“File_1”,“File_2”和“File_3”。在每个实例(User :: FileDirectory)和(User :: File_name)中使用相同的变量名,但由于变量的实际值发生更改,因此会创建一个新文件。但是,只有存在数据时才会创建文件进入文件。即如果没有记录来填充文件,则根本不会创建它。创建文件后,还应将文件创建日期添加到文件名中。例如:File1_22102011.txt
好的,如果上面的内容有点令人困惑,以下是它的工作原理,
所有文件都使用相同的变量,但在创建每个文件之前会重置它。
•因此它使用第一个sql选择(ID号,First_Name和Main_Name)在内存中填充结果集。它将文件变量设置为“File_1”。如果结果集中有记录,则会创建并写入此文件名。
•然后使用第二个选择(合同号)创建新的结果集。它将变量设置为“File_2”。如果此新结果集中有记录,则将从变量创建一个新文件(现在具有新值)
•最后创建第三个结果集(Contract_no,ExperianNo,Entity_ID_Number,First_Name,Main_Name),并将文件变量设置为“File_3”。同样,如果结果集中有记录,则将创建该文件并将其写入。
我已经研究了一些方法来实现这一目标,但它们都失败了,所以很少有人会非常感激。
答案 0 :(得分:1)
虽然你的工作有所作为,但我认为维护是相当痛苦的。
我会将它作为3个并行运行的序列容器来处理。根据父级的成功和行计数变量的值,每个容器都有一个数据流和两个文件任务。如果行计数变量为0,则删除该文件。如果它大于0,则将其重命名为File_n
如您所见,我有第一个文件的容器。数据流创建输出a.txt文件。根据变量@ RowCount1的值,它将删除空文件或将其重命名为File_1。
每个数据流看起来像源查询,行计数转换和具有临时名称的文件目标(a.txt,b.txt,c.txt)。由于文件总是被创建,即使它是空的,我们也需要删除或重命名它,这将根据文件操作任务完成。
在我看来,这种方法会更清晰,因为它允许您以更干净的方式测试和调试每个项目,而不是处理内存数据集。