亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

MS SQL Server 2000數據轉換服務部署

添加時間:2013-6-25 14:34:21  添加: 思海網絡 

MS SQL Server做大數據量傳輸的時候,我們大多會用到數據傳輸服務。現在假設,在開發環境下,我們已經設計好了DTS包并且運行良好,接下來我們要做的事情是遷移和部署這個DTS數據包。所以,我們需要把設計環境下的DTS包保存成結構化的存儲文件,并且這個文件導入到目標環境下的MS SQL Server中,最后添加作業,讓MS SQL Server Angent在我們預期的事情執行這個DTS包完成數據傳輸工作。其中需要重點解決的一個問題是,在目標環境中,DTS傳輸的源和目的地會發生改變,需要對它進行配置。

2. 解決方案

2.1. DTSRun

DTSRun是微軟提供的命令用于執行DTS包(包括結構化存儲的、存儲在SQL Server或存儲在Meta Data Services的包)。

dtsrun的用法:
dtsrun
[/?]|
[
    [
        /[~]S server_name[\instance_name]
        { {/[~]U user_name [/[~]P password]} | /E }
    ]
    {    
        {/[~]N package_name }
        | {/[~]G package_guid_string}
        | {/[~]V package_version_guid_string}
    }
    [/[~]M package_password]
    [/[~]F filename]
    [/[~]R repository_database_name]
    [/A global_variable_name:typeid=value]
    [/L log_file_name]
    [/W NT_event_log_completion_status]
    [/Z] [/!X] [/!D] [/!Y] [/!C]
]
具體的用法參看微軟的資料。這里需要重點指出的是,通過“/A global_variable_name:typeid=value”選項,我們可以給DTS包傳遞多個自定義的參數,在DTS包部署的目標環境下,我們用這個選項告訴DTS包服務器名稱、用戶名、密碼等數據庫連接信息。通過“/!Y”選項可以獲取加密后的DTSRun參數。



2.2. 重新設計DTS包

為了處理DTSRun傳入的自定義參數,DTS包需要重新設計。我們可以增加一個ActiveX 任務,在ActiveX 任務中通過VB 或者Java 對DTS編程,并且定義流程,把ActiveX 任務設置成最開始的一個任務。由于DTS COM對象線程模式與ActiveX 任務宿主的不一致,需要將ActiveX 任務工作流屬性設置成在主包線程中執行,否則可能會出現調用錯誤。

下面的例子是ActiveX 任務中的腳本。例子中的DTS包包含名稱為"DBConnection"的數據庫連接對象。



'************************************************************************' Visual Basic ActiveX '************************************************************************Function Main() Dim sDBDataSource Dim sDBCatalog Dim sDBUserID Dim sDBPassword Dim bDBUseTrusted Dim sOLAPServer Dim sOLAPCatalog Dim oPackage Dim oConnection Dim oTask Dim oCustomTask ' 獲取DTSRun傳入的自定義參數 sDBDataSource = DTSGlobalVariables("DBDataSource").Value sDBCatalog = DTSGlobalVariables("DBCatalog").Value sDBUserID = DTSGlobalVariables("DBUserID").Value sDBPassword = DTSGlobalVariables("DBPassword").Value bDBUseTrusted = DTSGlobalVariables("DBUseTrusted").Value sOLAPServer = DTSGlobalVariables("OLAPServer").Value sOLAPCatalog = DTSGlobalVariables("OLAPCatalog").Value ' 取得當前DTS包對象的技巧 Set oPackage = DTSGlobalVariables.Parent ' 取得包中的數據連接對象 Set oConnection = oPackage.Connections("DBConnection") ' 配置數據源對象的數據連接信息 If bDBUseTrusted Then oConnection.UseTrustedConnection = bDBUseTrusted Else oConnection.UserID = sDBUserID oConnection.Password = sDBPassword End If oConnection.DataSource = sDBDataSource oConnection.Catalog = sDBCatalog Set oConnection = nothing ' 配置跟多的信息,這里是OLAP分析服務處理任務 Set oTask = oPackage.Tasks("DTSTask_DTSOlapProcess.Certificate") Set oCustomTask = oTask.CustomTask Set oTask = nothing oCustomTask.Properties("TreeKey").Value = sOLAPServer & "\" _ & sOLAPCatalog & "\CubeFolder\Certificate" Set oCustomTask = nothing ' 返回成功狀態 Main = DTSTaskExecResult_SuccessEnd Function



2.3. 保存為結構化的存儲文件

這個過程相當的簡單,通過企業管理器可以完成。另存為的結構化存儲文件就是我們要分發的DTS包。

2.4. 導入到MS SQL Server

我們需要通過DTS編程來實現這個過程。需要強調的是,下面這段示例需要在ApartmentState為STA線程中才可以正確的被調用。

public void Go(){ DTS.Package2Class pkg = new DTS.Package2Class(); DTS.Application app = new DTS.ApplicationClass(); //從SQL SERVER中刪除已經存在的同名DTS包 try { pkg.RemoveFromSQLServer( DBServer, DBSUserID, DBSPassword, DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default, "", "", PkgName ); } catch { } //取得待分發DTS包(結構化的存儲文件)的包信息,這里假定包中只包含一個版本 DTS.SavedPackageInfos infos = pkg.GetSavedPackageInfos(UNCFile); DTS.SavedPackageInfo info = infos.Item(1); object obj1 = null; object obj2 = null; string sPkgID = info.PackageID; string sVerID = info.VersionID; string sPkgName = info.PackageName; //載入結構化的存儲文件 pkg.LoadFromStorageFile( UNCFile, PkgPwd, sPkgID, sVerID, sPkgName, ref obj1 ); //保存到SQL Server中 pkg.SaveToSQLServerAs( PkgName, DBServer, DBSUserID, DBSPassword, DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default, PkgOwnerPwd, PkgOperatorPwd, "", ref obj2, false); pkg.UnInitialize(); //檢查是否保存成功 DTS.PackageSQLServer pkgSQLServer = app.GetPackageSQLServer( DBServer, DBSUserID, DBSPassword, DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default ); DTS.PackageInfos infs = pkgSQLServer.EnumPackageInfos(PkgName, true, ""); if (infs.EOF) throw new Exception("DTS包導入到數據庫失敗。"); DTS.PackageInfo inf = infs.Next(); mPkgID = inf.PackageID; mVerID = inf.VersionID;}

2.5. 添加作業

添加作業可以用傳統的方式,用SQL語句可做到,不做詳細說明。MS SQL Server更是提供一系列的存儲過程對作業進行修改,以達到用戶預期的效果。

3. 小結

文章到此已經達到我們的目標?傮w上說,2.2這步的實現有些困難,在實現過程當中也碰到過很多困難,有一些是在新聞組中得到的解答,其它的步驟查看MSDN都可以得到比較容易的解決。

關鍵字:SQL Server、數據庫、存儲過程

分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站