您好我使用OLE DB Source从dBase IV文件中获取行并且它可以工作,然后我拆分数据并使用聚合组件执行分组。所以我获得了一个包含两列“null”值的行:
CompanyID | CompanyName | SubTotal | Tax | TotalRevenue
Null Null 145487 27642.53 173129.53
这次成功是因为所有行都已经分组,没有注意第一列,只是总结有价值的列,所以我需要将该值更改为默认值,如CompanyID =“100000000”和CompanyName =“Others”。我尝试在OLE DB命令组件上使用SqlCommand:
SELECT "10000000" AS RUCCLI , "Otros - Varios" AS RAZCLI FROM RGVCAFAC
<property id="1505" name="SqlCommand" dataType="System.String" state="default" isArray="false" description="The SQL command to be executed." typeConverter="" UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" containsID="false" expressionType="Notify">SELECT "10000000" AS RUCCLI , "Otros - Varios" AS RAZCLI FROM RGVCAFAC</property>
但是没有发生,为什么?最后,当数据插入SQL Server表时,任务完成。
我在提取数据和转换时使用相同的连接管理器。 (查看代码)
<DTS:Property DTS:Name="ConnectionString">Data Source=C:\CONTA\Resocen\Agosto\;Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Extended Properties=dBASE IV;</DTS:Property></DTS:ConnectionManager></DTS:ObjectData></DTS:ConnectionManager>
alt text http://web5.twitpic.com/img/30512459-a822658c0dc883a7543171829bff8d9e.4ab399cd-full.jpg
所有工作都在内存上,我没有使用缓存管理器连接
答案 0 :(得分:1)
我认为这是你的情景:
而不是SQL命令(不影响缓冲区),您需要使用派生列将两列中的值替换为null,并使用这些列中所需的常量值。
为了澄清,SQL Command任务用于从数据流中获取信息并对实际数据库进行更改。它不用于从数据库收集信息以更改数据流中的数据。