下面是我写的一个方法,但是不能达到效果,但是也没报错..
/// <summary>
/// 执行制定服务器上,指定DTS包(存储在sql server 上)
/// </summary>
/// <param name="serverIP">服务器IP</param>
/// <param name="uId">服务器用户名</param>
/// <param name="uPasswd">用户密码</param>
/// <param name="pageName">DTS包名称</param>
/// <returns></returns>
public void ExecutePackPage(string serverIP, string uId, string uPasswd, string pPasswd, string packName)
{
DTS.Package2Class packClass = new DTS.Package2Class();
Object MIA = System.Reflection.Missing.Value; packClass.LoadFromSQLServer(serverIP, uId, uPasswd, DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default, pPasswd, "", "", packName, ref MIA);
packClass.Execute();
packClass.UnInitialize();
}
在LoadFromSQLServer处卡死但是我用下列方法获取服务器上的所有dts包可以获取到 /// <summary>
/// 返回制定服务器上的所有dts包
/// </summary>
/// <param name="serverIP"></param>
/// <param name="uId"></param>
/// <param name="uPasswd"></param>
/// <returns></returns>
public DataTable GetDTSOnServerList(string serverIP, string uId, string uPasswd)
{
DTS.Application App = new DTS.Application(); DTS.PackageSQLServer package = App.GetPackageSQLServer(serverIP, uId, uPasswd, DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default);
DTS.PackageInfos Infos; Infos = package.EnumPackageInfos("", false, "");
DataTable dt = new DataTable();
dt.Columns.Add("Name") ;
dt.Columns.Add("VersionID");
dt.Columns.Add("Owner");
dt.Columns.Add("CreationDate");
dt.Columns.Add("PackageID");
DataRow row;
foreach (DTS.PackageInfo Info in Infos)
{
row = dt.NewRow();
row["Name"] = Info.Name;
row["VersionID"] = Info.VersionID;
row["Owner"] = Info.Owner;
row["CreationDate"] = Info.CreationDate;
row["PackageID"] = Info.PackageID;
dt.Rows.Add(row);
}
return dt;
}
求教
/// <summary>
/// 执行制定服务器上,指定DTS包(存储在sql server 上)
/// </summary>
/// <param name="serverIP">服务器IP</param>
/// <param name="uId">服务器用户名</param>
/// <param name="uPasswd">用户密码</param>
/// <param name="pageName">DTS包名称</param>
/// <returns></returns>
public void ExecutePackPage(string serverIP, string uId, string uPasswd, string pPasswd, string packName)
{
DTS.Package2Class packClass = new DTS.Package2Class();
Object MIA = System.Reflection.Missing.Value; packClass.LoadFromSQLServer(serverIP, uId, uPasswd, DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default, pPasswd, "", "", packName, ref MIA);
packClass.Execute();
packClass.UnInitialize();
}
在LoadFromSQLServer处卡死但是我用下列方法获取服务器上的所有dts包可以获取到 /// <summary>
/// 返回制定服务器上的所有dts包
/// </summary>
/// <param name="serverIP"></param>
/// <param name="uId"></param>
/// <param name="uPasswd"></param>
/// <returns></returns>
public DataTable GetDTSOnServerList(string serverIP, string uId, string uPasswd)
{
DTS.Application App = new DTS.Application(); DTS.PackageSQLServer package = App.GetPackageSQLServer(serverIP, uId, uPasswd, DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default);
DTS.PackageInfos Infos; Infos = package.EnumPackageInfos("", false, "");
DataTable dt = new DataTable();
dt.Columns.Add("Name") ;
dt.Columns.Add("VersionID");
dt.Columns.Add("Owner");
dt.Columns.Add("CreationDate");
dt.Columns.Add("PackageID");
DataRow row;
foreach (DTS.PackageInfo Info in Infos)
{
row = dt.NewRow();
row["Name"] = Info.Name;
row["VersionID"] = Info.VersionID;
row["Owner"] = Info.Owner;
row["CreationDate"] = Info.CreationDate;
row["PackageID"] = Info.PackageID;
dt.Rows.Add(row);
}
return dt;
}
求教
权限允许的话,可以试试通过cmdshell存储过程来执行dtsrun命令来运行DTS包