关于在.net程序中执行SQL数据库的DTS包

借首页问个问题,希望管理员允许我暂放一下,也希望各位兄弟帮我解答解答。

一个项目中,客户有一台oracle数据库以及一个sql数据库,我将它们搭建成异构数据库。其中后台要实现的一个功能叫“数据初始化”,要将oracle中的数据导入到sql数据库中。因此我使用了sql数据库的DTS导入,创建的DTS包在sql的企业管理器中已经被证明是可以成功执行的,可以成功地导入oracle的近百万的数据。

接着我开始用程序实现,代码如下:
            string DB_String = CConst.DBConnectString;
            Regex ServerRegex 
= new Regex("Server=(?<server>[^;]+);");
            Regex UserRegex 
= new Regex("UID=(?<user>[^;]+);*");
            Regex PasswordRegex 
= new Regex("PWD=(?<password>\\w*);*");
            Match m 
= ServerRegex.Match(DB_String);
            
string server_name = m.Groups["server"].Value;
            m 
= UserRegex.Match(DB_String);
            
string user_name = m.Groups["user"].Value;
            m 
= PasswordRegex.Match(DB_String);
            
if(!m.Success)
            
{
                Trace.Warn(
"失败啦"+DB_String);
            }
 
            
string password = m.Groups["password"].Value;
            
            
string package_name = "导入oracle核心数据库";
            
string DTSCommandText = string.Format(@"/S {0} /U {1} /P {2} /N {3}", server_name, user_name, password, package_name);
            Trace.Warn(DTSCommandText);
            Process myProc 
= new Process();
            myProc.StartInfo.FileName 
= @"dtsrun.exe"
            myProc.StartInfo.Arguments 
= DTSCommandText;
            myProc.StartInfo.CreateNoWindow 
= true;
            myProc.Start();
            
this.Button1.Enabled = false;
            
this.LabelResult.Text = "DTS作业已经开始运行";
            
this.LabelResult.Visible = true;

这个程序在客户那里可以执行,不会出错,但是它中间的DTS包并没有被运行。究竟是哪里出了问题呢?大家可以指点一下吗?

客户的系统环境是window 2000 ad server+sql server 2000,数据库所在盘的文件格式为NTFS。
posted on 2005-03-01 09:58  湘南和也  阅读(1790)  评论(6编辑  收藏  举报