首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取使用EzAPI SSIS传输的数据的行数

获取使用EzAPI SSIS传输的数据的行数
EN

Stack Overflow用户
提问于 2014-07-04 04:31:56
回答 1查看 216关注 0票数 1

我正在使用带有EzAPI的SSIS将一些数据从一个表传输到另一个表。如何获取已传输的行数?

我的设置如下

代码语言:javascript
复制
        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及更高版本的所有版本。

EN

回答 1

Stack Overflow用户

发布于 2014-07-04 04:40:57

简单的答案是行数转换没有包含在开箱即用的地方。关于这一点我有一个简短的帖子:Row Count with EzAPI

我从CodePlex下载了源项目,然后编辑了EzComponents.cs (在EzAPI中),并添加了以下代码

代码语言:javascript
复制
[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,您只需将其修补到现有脚本中即可。

代码语言:javascript
复制
// 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和用法的示例代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24562840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档