首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 呼叫 SQL Server DTS 套件與帶回傳值的預存程序(四)

     編輯:關於C語言

T-SQL 腳本:從資料庫載入並執行 DTS 套件

以下腳本示範如何在 SQL Server 預存程序中使用 OLE 自動化物件載入、設定屬性、執行並銷毀 DTS 套件:

1. 載入 DTS 套件

DECLARE @hr INT, @object INT
EXEC @hr = sp_OACreate 'DTS.Package', @object OUTPUT
IF @hr <> 0 BEGIN
    PRINT 'error create DTS.Package'
    EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
    SELECT hr=CONVERT(VARBINARY(4),@hr), Source=@src, Description=@desc
    RETURN
END
PRINT 'create DTS.Package successful'

EXEC @hr = sp_OAMethod @object, 'LoadFromSQLServer', NULL,
    @ServerName='localhost', @PackageName='testdts', @Flags=256
IF @hr <> 0 BEGIN
    PRINT 'error LoadFromSQLServer'
    EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
    SELECT hr=CONVERT(VARBINARY(4),@hr), Source=@src, Description=@desc
    RETURN
END
PRINT 'LoadFromSQLServer successful'

2. 設定全域變數(若套件有定義)

EXEC @hr = sp_OASetProperty @object, 'GlobalVariables("var_1").Value', 123
IF @hr <> 0 BEGIN
    PRINT 'error set property'
    EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
    SELECT hr=CONVERT(VARBINARY(4),@hr), Source=@src, Description=@desc
    RETURN
END
PRINT 'set property successful'

3. 執行套件

EXEC @hr = sp_OAMethod @object, 'Execute'
IF @hr <> 0 BEGIN
    PRINT 'Execute Failed'
    EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
    SELECT hr=CONVERT(VARBINARY(4),@hr), Source=@src, Description=@desc
    RETURN
END
PRINT 'Execute Successful'

4. 釋放物件

EXEC @hr = sp_OADestroy @object
IF @hr <> 0 BEGIN
    PRINT 'Destroy Package failed'
    EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
    SELECT hr=CONVERT(VARBINARY(4),@hr), Source=@src, Description=@desc
    RETURN
END
PRINT 'destroy successful'

應用建議

此模式可彈性應用於程式開發,實現資料庫層級的 ETL 自動化排程。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved