我正在使用带有EzAPI的SSIS将一些数据从一个表传输到另一个表。如何获取已传输的行数?
我的设置如下
EzPackage package = new EzPackage();
EzOleDbConnectionManager srcConn;
EzOleDbSource src;
EzOleDbConnectionManager destConn;
EzOleDbDestination dest;
EzDataFlow dataFlow;
destConn = new EzOleDbConnectionManager(package); //set connection string
srcConn = new EzOleDbConnectionManager(package);
dataFlow = new EzDataFlow(package);
src = Activator.CreateInstance(typeof(EzOleDbSource), new object[] { dataFlow }) as EzOleDbSource;
src.Connection = srcConn;
src.SqlCommand = odbcImport.Query;
dest = Activator.CreateInstance(typeof(EzOleDbDestination), new object[] { dataFlow }) as EzOleDbDestination;
dest.Connection = destConn;
dest.AttachTo(src, 0, 0);
dest.AccessMode = AccessMode.AM_OPENROWSET_FASTLOAD;
DTSExecResult result = package.Execute();在这里,我可以添加一些东西来获得行数吗?适用于SQL server 2008r2及更高版本的所有版本。
发布于 2014-07-04 04:40:57
简单的答案是行数转换没有包含在开箱即用的地方。关于这一点我有一个简短的帖子:Row Count with EzAPI
我从CodePlex下载了源项目,然后编辑了EzComponents.cs (在EzAPI中),并添加了以下代码
[CompID("{150E6007-7C6A-4CC3-8FF3-FC73783A972E}")]
public class EzRowCountTransform : EzComponent
{
public EzRowCountTransform(EzDataFlow dataFlow) : base(dataFlow) { }
public EzRowCountTransform(EzDataFlow parent, IDTSComponentMetaData100 meta) : base(parent, meta) { }
public string VariableName
{
get { return (string)Meta.CustomPropertyCollection["VariableName"].Value; }
set { Comp.SetComponentProperty("VariableName", value); }
}
}上面的组件id仅适用于2008年。
对于2012,它将是E26997D8C-70DA-42B2-8208-A19CE3A9FE41我目前没有安装2012来确认我没有转置那里的值,而是将行计数组件拖放到数据流上,右键单击并查看属性。组件/类id就是该值所需的值。如果你在处理2005年的事情,也会有类似的情况。
因此,一旦您能够使用EzRowCountTransform,您只需将其修补到现有脚本中即可。
// Create an instance of our transform
EzRowCountTransform newRC = null;
// Create a variable to use it
Variable newRCVariable = null;
newRCVariable = package.Variables.Add("RowCountNew", false, "User", 0);
// ...
src.SqlCommand = odbcImport.Query;
// New code here too
newRC = new EzRowCountTransform(dataFlow);
newRC.AttachTo(src);
newRC.Name = "RC New Rows";
newRC.VariableName = newRCVariable.QualifiedName;
// Continue old code我有一个关于我过去使用的各种方法的演示文稿,以及我喜欢/不喜欢它们的地方。Type more, click less: a programmatic approach to building SSIS。它包含用于创建EzRowCountTransform和用法的示例代码。
https://stackoverflow.com/questions/24562840
复制相似问题