程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 在SQL Server存儲過程執行DTS包

在SQL Server存儲過程執行DTS包

編輯:關於SqlServer

數據轉換服務(DTS)在數據庫管理和開發的多種領域都有會涉及DTS:

數據倉庫-將數據從原始的處理系統和表格中提取出來以供報表使用
建立OLAP
將大量數據從文本文件或其它非數據庫格式的文件中拷貝到數據庫
生成Microsoft Office文檔報表
使用 Distributed Transaction Coordinator (DTC)實現多數據庫操作
在客戶的桌面程序或網站上,經常需要允許用戶按需執行DTS包。在這種情況下,在部署DTS包時,你應該決定將DTS包安置在何處,以及通過何種手段調用它。

你的選擇
要建立一個按需執行的DTS包,可以有多種選擇。下面就對這些選擇進行逐一說明。

SQL Server job
你可以在SQL Server裡建立一個job,並調用sp_start_job存儲過程。使用sp_start_job的不足之處在於它是一個異步過程。由於它不能返回成功或失敗指示,你必須強制使用sp_help_job系統存儲過程查詢job的結果。除非不關心job調用後的結果,否則異步的job將使桌面程序或Web程序變得很復雜。一個job可以被設置成非管理員(sa)模式,但需要一些額外的步驟。

在客戶端桌面使用DTS DLLs
第二種方法是用戶電腦載入Enterprise Manager或DTS DLLs,在用戶的電腦上調用DTS包。雖然用戶電腦執行DTS包有一定可行性,但也有不足:必須考慮到升級DTS包帶來的分發和安裝問題。

在服務器上使用sp_OA 擴展存儲過程
第三種選擇,也就是本文所介紹的核心內容,就是使用sp_OA系統存儲過程族並有計劃的調用DTS包。這種方案可以有效的避免上兩種方案的弊端。

使用 VBScript調用DTS包
實現一個可以運行DTS包的存儲過程的第一步是,編寫一段VBScript代碼。因為sp_OA存儲過程使用起來有些麻煩,因此在利用sp_OA存儲過程實現目標之前,要用VBScript編寫你希望實現的代碼。一般傾向於使用Visual Basic進行簡單的腳本開發工作。如圖A所示,通過在項目引用窗口中加入DTS包對象庫,就可以在腳本中引用DTS包對象了。

圖A:DTS對象庫
在代碼中使用了LoadFromStorageFile函數。一般說,開發工作應該在一個測試環境進行。了解DTS格式的結構化,對將測試產品變為實際產品時很有幫助。

Sp_OA 實現
寫好了VBScript代碼,就可用sp_OA擴展存儲過程實現代碼。和VBScript類似,sp_OA系統存儲過程允許與對象庫的COM+ API進行交互。

Sp_OACreate和在VB或VBScript中調用的CreateObject函數類似。Sp_OAGetProperty、sp_OASetProperty以及sp_OAMethod用來連接對象庫中的特性和函數。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved