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檔案執行資料匯入匯出 Java代碼
- 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();
- }
- }