dtsrun [/?]| [ [ /[~]S server_name[\instance_name] { {/[~]U user_name [/[~]P password]} | /E } ] { {/[~]N package_name } | {/[~]G package_guid_string} | {/[~]V package_version_guid_string} } [/[~]M package_password] [/[~]F filename] [/[~]R repository_database_name] [/A global_variable_name:typeid=value] [/L log_file_name] [/W NT_event_log_completion_status] [/Z] [/!X] [/!D] [/!Y] [/!C] ] |
'************************************************************************ ' Visual Basic ActiveX Script '************************************************************************ Function Main()
Dim sDBDataSource Dim sDBCatalog Dim sDBUserID Dim sDBPassword Dim bDBUseTrusted Dim sOLAPServer Dim sOLAPCatalog Dim oPackage Dim oConnection Dim oTask Dim oCustomTask ' 获取DTSRun传入的自定义参数 sDBDataSource = DTSGlobalVariables("DBDataSource").Value sDBCatalog = DTSGlobalVariables("DBCatalog").Value sDBUserID = DTSGlobalVariables("DBUserID").Value sDBPassword = DTSGlobalVariables("DBPassword").Value bDBUseTrusted = DTSGlobalVariables("DBUseTrusted").Value sOLAPServer = DTSGlobalVariables("OLAPServer").Value sOLAPCatalog = DTSGlobalVariables("OLAPCatalog").Value ' 取得当前DTS包对象的技巧 Set oPackage = DTSGlobalVariables.Parent ' 取得包中的数据连接对象 Set oConnection = oPackage.Connections("DBConnection") ' 配置数据源对象的数据连接信息 If bDBUseTrusted Then oConnection.UseTrustedConnection = bDBUseTrusted Else oConnection.UserID = sDBUserID oConnection.Password = sDBPassword End If |
oConnection.DataSource = sDBDataSource
oConnection.Catalog = sDBCatalog Set oConnection = nothing ' 配置跟多的信息,这里是OLAP分析服务处理任务 Set oTask = oPackage.Tasks("DTSTask_DTSOlapProcess.Certificate") Set oCustomTask = oTask.CustomTask Set oTask = nothing oCustomTask.Properties("TreeKey").Value = sOLAPServer & "\" _ & sOLAPCatalog & "\CubeFolder\Certificate" Set oCustomTask = nothing ' 返回成功状态 Main = DTSTaskExecResult_Success End Function |
public void Go()
{ DTS.Package2Class pkg = new DTS.Package2Class(); DTS.Application app = new DTS.ApplicationClass(); //从SQL SERVER中删除已经存在的同名DTS包 try { pkg.RemoveFromSQLServer( DBServer, DBSUserID, DBSPassword, DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default, "", |
"",
PkgName ); } catch { } //取得待分发DTS包(结构化的存储文件)的包信息,这里假定包中只包含一个版本
DTS.SavedPackageInfos infos = pkg.GetSavedPackageInfos(UNCFile); DTS.SavedPackageInfo info = infos.Item(1); object obj1 = null;
object obj2 = null; string sPkgID = info.PackageID; string sVerID = info.VersionID; string sPkgName = info.PackageName; //载入结构化的存储文件 pkg.LoadFromStorageFile( UNCFile, PkgPwd, sPkgID, sVerID, sPkgName, ref obj1 ); //保存到SQL Server中 pkg.SaveToSQLServerAs( PkgName, DBServer, DBSUserID, DBSPassword, DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default, PkgOwnerPwd, PkgOperatorPwd, "", ref obj2, false); pkg.UnInitialize(); |
//检查是否保存成功
DTS.PackageSQLServer pkgSQLServer = app.GetPackageSQLServer( DBServer, DBSUserID, DBSPassword, DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default ); DTS.PackageInfos infs = pkgSQLServer.EnumPackageInfos(PkgName, true, ""); if (infs.EOF) throw new Exception("DTS包导入到数据库失败。"); DTS.PackageInfo inf = infs.Next(); mPkgID = inf.PackageID; mVerID = inf.VersionID; } |