首页 > 开发 > 综合 > 正文

在C#中应用DTS

2024-07-21 02:19:51
字体:
来源:转载
供稿:网友
在c#中应用dts



本文将关注列出、执行dts包和改变dts包的属性或者全局变量。



首先我们看看如何列出保存在本地(local or (local)/netsdk)服务器为本地包。在dotnet中处理dts包的关键是增加对“microsoft dtspackage object library”的引用(dts.dll)。



以下代码可以列出服务器上的本地包。



static void main(string[] args)

{

dts.application app=new dts.application();

dts.packagesqlserver package= app.getpackagesqlserver("(local)//netsdk", "sa", "",

dts.dtssqlserverstorageflags.dtssqlstgflag_default);

dts.packageinfos infos;

infos = package.enumpackageinfos("", false, "");

foreach(dts.packageinfo info in infos)

{

console.writeline("name : {0}/tversionid : {1}",info.name,info.versionid);

}

console.read();

}



取保存在格式化存储文件中的dts包属性代码如下:



static void main(string[] args)

{

dts.package2class package=new dts.package2class();

dts.savedpackageinfos infos =

package.getsavedpackageinfos("c://pubs2pubs2package.dts");

foreach(dts.savedpackageinfo info in infos)

{

console.writeline("name : {0}/tversionid : {1}",

info.packagename,info.versionid);

}

package.uninitialize();

console.read();

}



通过package2class对象可以执行dts包,或者操作dts包的属性。代码如下:



static void main(string[] args)

{

dts.package2class package=new dts.package2class();

try

{

object mia=system.reflection.missing.value;

package.loadfromsqlserver("(local)//netsdk",

"sa", "", dts.dtssqlserverstorageflags.dtssqlstgflag_default, "", "",

"{f580dfc4-1f6a-4d70-b6a1-1c200b0d7890}", "customtaskpkg",ref mia);

console.writeline(package.description);

package.description="my description";

console.writeline(package.description);

}

catch(exception ex)

{

console.writeline(ex.message);

}

finally

{

package.uninitialize();

package=null;

}

console.read();

}



如果要使用最新的版本信息,则不填写版本id信息,代码如下:

package.savetosqlserver("(local)//netsdk", "sa", "",

dts.dtssqlserverstorageflags.dtssqlstgflag_default, "", "","",ref mia,false);



以下是设置dts包全局变量的过程:

static void main(string[] args)

{

dts.package2class package = new dts.package2class();

try

{

object mia=system.reflection.missing.value;

package.loadfromstoragefile("c://pubs2pubs2package.dts","","","",

"pubs2pubs2package",ref mia);

package.globalvariables.addglobalvariable("myvariable","myvalue");

foreach(dts.globalvariable gvar in package.globalvariables)

console.writeline("name : {0}/tvalue : {1}",gvar.name,gvar.value);

}

catch(exception ex)

{

console.writeline(ex.message);

}

finally

{

package.uninitialize();

}

console.read();

}



修改全局变量值语句:

package.globalvariables.item("myvariable").let_value("hello from c#");



以下语句将改动保存到dts包中。

package.savetostoragefile("c://pubs2pubs2package.dts","","",ref mia,false);



执行包:

package.execute();

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表