高难度问题:Java如何调用DTS包,并且执行它? DTS包可以通过DTSRun这个Windows命令去调用。具体参数你去看SQLServer的联机帮助。在Java里调用命令行,或者连接到数据库后用xp_cmdshell去调用命令行。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 JAVA怎么调度DTS包,不是很清楚,但是LZ可以换个思路,用JAVA调度其它东西来间接调度DTS。 用xp commnand shell 就可以调用包了,用java 调用xp commnand shell 存储过程不就行了吗?你不要告诉我java调用存储过程也不会哦。CREATE PROCEDURE [dbo].[PSSIS]ASEXEC master.dbo.xp_cmdshell 'dtexec /F E:\Package.dtsx' 这是存储过程代码CREATE PROCEDURE [dbo].[PSSIS]ASEXEC master.dbo.xp_cmdshell 'dtexec /F E:\Package.dtsx'直接用java调用吧。偶不懂java,这是C#的常用的方法下面的PSSIS就是这个procedure。 protected void Button1_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection("Server=(local);database=databasename;Integrated Security=SSPI"); SqlCommand cmd = new SqlCommand("PSSIS", conn); cmd.CommandType = CommandType.StoredProcedure; try { conn.Open(); cmd.ExecuteNonQuery(); } finally { conn.Close(); } }} http://superxgz.javaeye.com/blog/53235步骤蛮详细的,可能对你有用。 Java中通过jacob调用dts进行数据导入导出 关键字: java jacob dts 导入导出 第一步: 下载jacob http://danadler.com/jacob/jacobBin_17.zip 解压后将dll文件放到%JAVA_HOME%\jre\bin目录下,将jar文件放到%JAVA_HOME%\jre\lib\ext目录下,不用再配置环境变量第二步: 创建dts文件 直接用sqlserver2000的导入导出工具创建一个dts任务,并保存为存储结构文件,放到比如d:\temp\dts\dts_test.dts第三步: 通过java调用dts文件执行数据导入导出 代码package dbf; import java.text.SimpleDateFormat; import java.util.Date; import com.jacob.activeX.*; import com.jacob.com.*; public class ExportDts { public void exportdbf() { SimpleDateFormat localTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String importFileName = "D:/temp/dbf"; //这里导出的DBF要存放的路径 String DtsPath = "D:/temp/dts/dts_test.dts"; //这里是DTS文件的路径 try { System.out.println("start:" + localTime.format(new Date())); ActiveXComponent app = new ActiveXComponent("DTS.Package2"); Dispatch.callN(app, "LoadFromStorageFile",new Variant[] {new Variant(DtsPath),new Variant("")}); //重新设置路径 Dispatch DTSconns = Dispatch.get(app,"Connections").toDispatch(); Dispatch DTSconn = Dispatch.callN(DTSconns,"Item",new Variant[]{new Variant(2)}).toDispatch(); Dispatch.put(DTSconn,"DataSource",new String(importFileName)); //执行 Dispatch.callN(app, "Execute", new Variant[] {}); //得到执行的结果 Dispatch DTSsteps = Dispatch.get(app,"Steps").toDispatch(); Dispatch DTSstep = Dispatch.callN(DTSsteps,"Item",new Variant[]{new Variant(1)}).toDispatch(); Variant ResultValue = Dispatch.get(DTSstep,"ExecutionResult"); if(ResultValue.toInt()==0){ System.out.println("导出成功"); }else{ System.out.println("导出失败"); } System.out.println("end:" + localTime.format(new Date())); } catch (Exception ex) { ex.printStackTrace(); } } } MSSQL 2000数据互通问题.请教 求一条SQL语句,关于两表连接查询。(已实现,求优化) 遍历很多表的过程中,表结构略有差别,如何搞? 如何用UNION语句将下面几个查询显示在一起?? 没多少分了,问个简单的数据库恢复问题 一个SQL的问题,拜请各位大大解决 100分 大家都来讨论讨论sql语句优化的问题 存储过场中字符串的连接问题 难题求帮助,要解决不了,今晚下班火车赶不上了,SQL列相减 求写一时间相加函数 update 超难? 如何查一个表中所有字段是否包含某个关键词
你不要告诉我java调用存储过程也不会哦。
CREATE PROCEDURE [dbo].[PSSIS]
AS
EXEC master.dbo.xp_cmdshell 'dtexec /F E:\Package.dtsx'
CREATE PROCEDURE [dbo].[PSSIS]
AS
EXEC master.dbo.xp_cmdshell 'dtexec /F E:\Package.dtsx'
直接用java调用吧。
偶不懂java,这是C#的常用的方法
下面的PSSIS就是这个procedure。
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("Server=(local);database=databasename;Integrated Security=SSPI");
SqlCommand cmd = new SqlCommand("PSSIS", conn);
cmd.CommandType = CommandType.StoredProcedure; try
{
conn.Open();
cmd.ExecuteNonQuery();
}
finally
{
conn.Close();
}
}
}
步骤蛮详细的,可能对你有用。
关键字: java jacob dts 导入导出
第一步:
下载jacob
http://danadler.com/jacob/jacobBin_17.zip
解压后将dll文件放到%JAVA_HOME%\jre\bin目录下,将jar文件放到%JAVA_HOME%\jre\lib\ext目录下,不用再配置环境变量第二步:
创建dts文件
直接用sqlserver2000的导入导出工具创建一个dts任务,并保存为存储结构文件,放到比如d:\temp\dts\dts_test.dts第三步:
通过java调用dts文件执行数据导入导出
代码
package dbf;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.jacob.activeX.*;
import com.jacob.com.*;
public class ExportDts {
public void exportdbf() {
SimpleDateFormat localTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String importFileName = "D:/temp/dbf"; //这里导出的DBF要存放的路径
String DtsPath = "D:/temp/dts/dts_test.dts"; //这里是DTS文件的路径
try {
System.out.println("start:" + localTime.format(new Date()));
ActiveXComponent app = new ActiveXComponent("DTS.Package2");
Dispatch.callN(app, "LoadFromStorageFile",new Variant[] {new Variant(DtsPath),new Variant("")});
//重新设置路径
Dispatch DTSconns = Dispatch.get(app,"Connections").toDispatch();
Dispatch DTSconn = Dispatch.callN(DTSconns,"Item",new Variant[]{new Variant(2)}).toDispatch();
Dispatch.put(DTSconn,"DataSource",new String(importFileName));
//执行
Dispatch.callN(app, "Execute", new Variant[] {});
//得到执行的结果
Dispatch DTSsteps = Dispatch.get(app,"Steps").toDispatch();
Dispatch DTSstep = Dispatch.callN(DTSsteps,"Item",new Variant[]{new Variant(1)}).toDispatch();
Variant ResultValue = Dispatch.get(DTSstep,"ExecutionResult");
if(ResultValue.toInt()==0){
System.out.println("导出成功");
}else{
System.out.println("导出失败");
}
System.out.println("end:" + localTime.format(new Date()));
} catch (Exception ex) {
ex.printStackTrace();
}
}
}