您的位置:首页 > 数据库

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

2005-03-01 09:58 344 查看
借首页问个问题,希望管理员允许我暂放一下,也希望各位兄弟帮我解答解答。

一个项目中,客户有一台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)
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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐